PAT(Basic Level) Practice——1009 說反話
阿新 • • 發佈:2018-11-24
原題目:
給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。
輸入格式:
測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字串。字串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。
輸出格式:
每個測試用例的輸出佔一行,輸出倒序後的句子。
輸入樣例:
Hello World Here I Come
輸出樣例:
Come I Here World Hello
分析:
1.記得別的語言有可以分割字串的方法,C語言沒注意有什麼好用的,只有硬核程式設計解題了,太菜了,沒別的。
程式碼:
C語言版:
#include <stdio.h> #include <stdlib.h> int main() { int N,M,i=0,j,k=100,s=0; char Str[100]; gets(Str);//讀取字串 s=strlen(Str);//獲取字串長度 s--;//從最後一個字元開始 for(i=s,k=s;i>=0;i--)//從最後一個字元開始迴圈,直到字元列印完成 { if(Str[i]==' ')//若遇到空格,則將i+1到K的字元列印,並更新K值為空格的前一位 { for(j=i+1;j<=k;j++) { printf("%c",Str[j]); } k=i-1; printf(" "); } else if(i==0)//對於第一單詞,也就是反過來的最後一個是不用列印空格的,所以單獨處理 { for(j=i;j<=k;j++) { printf("%c",Str[j]); } k=i-1; } } return 0; }