日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PAT(乙级)1009

發布時間:2023/12/13 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT(乙级)1009 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1009. 說反話 (20)
給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出。

輸入格式:測試輸入包含一個測試用例,在一行內給出總長度不超過80的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字符串,單詞之間用1個空格分開,輸入保證句子末尾沒有多余的空格。

輸出格式:每個測試用例的輸出占一行,輸出倒序后的句子。

輸入樣例:
Hello World Here I Come
輸出樣例:

Come I Here World Hello

分析:這串字符串中的每個單詞之間都有一個空格,可以通過空格來判斷單詞的分割。記錄每一個空格出現的位置。

然后顛倒去輸出單詞即可。做法是給開頭和末尾也模擬一個空格,使得每一個單詞都包含的兩個空格之間,使得程序可以統一去處理這些單詞的輸出。而不用考慮開頭和結尾的特殊情形。

代碼如下

#include<stdio.h> #include<string.h>#define size 81void print(int a ,int b,char *p);//打印函數int main(void) {char temp[size];gets(temp);int num[size];int k = 1;num[0] = -1;//由于空格不輸出,因此這里設置為-1,把初始位置當做一個空格。for(int i = 0; i < strlen(temp);i++){ if(' ' == temp[i]){num[k++] = i;//記錄空格位置}}num[k] = strlen(temp);//把最后的末位置也當做一個空格//到此為止,我們num數組之中記錄的都是空格的位置,而且開頭和結尾也都包含著兩個空格之間。for(int i = k; i >= 1; i--){print(num[i-1] + 1,num[i] - 1,temp);}return 0; } void print(int a ,int b,char *p) {for(int i = a; i <= b ; i++){printf("%c",p[i]);}if(0 != a)//最后一個單詞后面不能有空格。{printf("%c",' ');} }

轉載于:https://www.cnblogs.com/zy666/p/10504364.html

總結

以上是生活随笔為你收集整理的PAT(乙级)1009的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。