1009. 说反话 (20)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输出格式:每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello
#include<cstdio>
#include<cstring>

int main(){
     char ans[90][90];
     int num = 0;
     while(scanf("%s",ans[num]) != EOF){ // 为什么一次的Ctrl+z结果不能出来
         num++;
     }
     for(int i = num - 1; i >= 0; i--){
         printf("%s",ans[i]);
         if(i != 0) printf(" ");
     }
  
    return 0;
}
#include<cstdio>
#include<cstring>

int main(){
     char ans[90][90];
     char str[90];
     int r = 0,h = 0;
     gets(str);
     int len = strlen(str);
     int i;
     for(i = 0; i < len; i++){
         if(str[i] != ' '){
             ans[r][h++] = str[i]; 
         }else{
             r++;
             h = 0;
             ans[r][h] = '\0';   //不是scanf或get输入的字符串结尾处要加一个'\0' 
         }
     }
     
     for(i = r; i >= 0; i--){   //str最后一个\0被输入到最后一个二位数组中。r的值就是二维数组个数 
         printf("%s",ans[i]);
         if(i != 0) printf(" ");
     }
  
    return 0;
}

 

posted @ 2018-03-11 14:12  王清河  阅读(134)  评论(0编辑  收藏  举报