1. 程式人生 > 其它 >C語言-7-32 說反話-加強版 (20 分

C語言-7-32 說反話-加強版 (20 分

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。

輸入格式:

測試輸入包含一個測試用例,在一行內給出總長度不超過500 000的字串。字串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字串,單詞之間用若干個空格分開。

輸出格式:

每個測試用例的輸出佔一行,輸出倒序後的句子,並且保證單詞間只有1個空格。

#include<stdio.h>
#include<string.h>
int main(){
    char ch[500001];//如果是用char *ch定義一定要用malloc函式申請空間  ch = (char*)malloc(sizeof(ch));
    
int flag = 0; gets(ch); int l = strlen(ch)-1; int x = 0; while(l){ if(ch[l]!=' ') x++; else{ ch[l] = '\0'; if(x) {if(flag) putchar(' '); printf("%s",ch+l+1);//ch+x 即可以輸入ch【x】直到'\0'出現的所有字元 而ch【x】只能輸出一個字串 x
= 0; flag = 1;} } l--; } if(x&&flag) putchar(' '); if(x) printf("%s",ch); printf("\n"); return 0; }

這道題其實並不用改變陣列的結構 剛開始我總想改變陣列來做 在網上搜了別人的程式碼發現不需要改變陣列 只要從後向前輸出就好