思路:用空格分隔每个单词 存到二维数组中 最后逆序输出。
方法一:过PAT得单点测试 用EOF判断数入完毕,自己黑框手动输入的时候 要用ctrl+z 再按enter告诉系统已经到达EOF,但是我并没有成功。。。
#include <cstdio>
int main(){
int num = 0;//单词个数 倒序输出时用
char a[90][90];
while(scanf("%s",a[num])!=EOF){
num++;//一行存一个单词
}
for(int i=num-1;i>=0;i--){
printf("%s",a[i]);
if(i>0) printf(" ");
}
return 0;
}
方法二:用gets
#include <cstdio>
#include <cstring>
int main(){
char str[90];
gets(str);
char a[90][90];
int len = strlen(str),r=0,h=0;//变量要初始化
for(int i=0;i<len;i++){
if(str[i]!=' '){//空单引号里要加空格
a[r][h++] = str[i];
}else{
a[r][h]='\0';
r++;
h=0;//别忘了初始化下一行的列数h
}
}
for(int i=r;i>=0;i--){//i直接从最后一行就是r开始就行
printf("%s",a[i]);
if(i>0) printf(" ");
}
return 0;
}