题目链接在此。
首先说一下题目的一般思路:先用str[]数组接收输入,然后遍历str数组,以空格作为分隔符对单词进行划分并按照顺序存放到二维字符数组中,最后按单词输入顺序的逆序输出所有单词,注意空格的输出即可。
#include<stdio.h>
#include<string.h>
int main(){
char str[81];
char res[81][81];
gets(str);
int row = 0, col = 0;
for(int i = 0 ; i < strlen(str); i++){
res[row][col++] = str[i];
if(str[i] == ' '){
res[row][col-1] = '\0'; //col-1是为了不把空格读进去
col = 0;
row++;
}
}
for(int i = row; i >= 0; i--){
printf("%s",res[i]);
if(i > 0) printf(" ");
}
return 0;
}
由于PAT是单点测试系统,所以可以有下面这种简便的写法:
#include<stdio.h>
#include<string.h>
int main(){
char str[81][81];
int index = 0;
while( scanf("%s",str[index++]) != EOF);
for(int i = index-2; i >= 0; i--){
printf("%s",str[i]);
if(i > 0) printf(" ");
}
return 0;
}