7-15 說反話-加強版 (20 分)

7-15 說反話-加強版 (20 分)
強行解釋
先輸出最后的單詞,后輸入先輸的單詞?(這不就是隊列嗎?先入隊,后出隊。不,咱現在也沒學過,咱也不敢問)
那咋辦呢?
看似機制的我使用了如下代碼解決了這個問題
#include<iostream>
using namespace std;
int main(){
string s,c;
cin>>s;
while(cin>>c){
c=c+' '+s;
s=c;
}
cout<<s;
return 0;
}
誰想到,老師出題的時候,已經料到會有此一劫,遂掛掉一個測試點

掛掉的最后一個測試點
還是遞歸吧??
雖然不會堆棧隊列,但是聽人家大二的大佬念叨,堆棧的本質是遞歸。
學過遞歸的我趕緊嘗試嘗試。
#include <iostream>
using namespace std;
int out(){
string s;
if(cin>>s){
out();
cout<<s<<" ";
}
else{
cout<<s;
return 0;
}
}
int main() {
string S1;
cin>>S1;
out();
cout<<S1;
return 0;
}
遞歸調來調去,竟然解決了這個問題。。。。
沒讀完就存着,接着讀,讀完了,通通輸出出來。
遇到問題
1.首先提一個點,今天才學會的,就是cin輸入是有返回值的,所以在oj上可以while(cin>>c)不停讀下去,直到讀完。但是自己電腦上跑的時候輸入完,不會停,要用唱跳rap籃球的Ctrl鍵+z強制結束。
2.第二個點就是 空格加入問題,思考一下,過去了,但是做的時候就是卡這里了。