这道题,思路上没有什么好说的,常规思路,里面有几个小点需要注意,代码加注释了。
#include <cstdio>
#include <cstring>
int main(){
char wordList[90][90];//二维数组存单词
char stringList[90];//一位数组存字符串
fgets(stringList, 90, stdin);//PAT中不让使用gets
int num = 0, j = 0;//num记录单词的个数
long long length = strlen(stringList);
for(int i = 0; i < length; i++){
if(stringList[i]==' '){
wordList[num][j] = '\0';//为每个单词添加结尾
j = 0;
num++;
}else{
if(stringList[i] == '\n'){//最后一个单词的换行需要特殊处理
wordList[num][j] = '\0';
break;
}else{
wordList[num][j++] = stringList[i];
}
}
}
for(int i = num; i >= 0; i--){
printf("%s", wordList[i]);
if(i){
printf(" ");
}
}
printf("\n");
return 0;
}
网友评论