zoukankan      html  css  js  c++  java
  • 1009 说反话 (20)(20 分)

    1009 说反话 (20)(20 分)

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

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

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

    输入样例:

    Hello World Here I Come
    

    输出样例:

    Come I Here World Hello
    

    思考

    这个看过加强版,那个加强版很强

    7-32 说反话-加强版(20 分) - ligong - 博客园 https://www.cnblogs.com/lingr7/p/9432803.html

    给出简单版的代码.

    #include <stdio.h>
    #include <string.h>
    int main() {
        char str[90];
        gets(str);
        int len = strlen(str), r = 0, h = 0;
        char ans[90][90];
        for(int i = 0; i < len; i++) {
            if(str[i] != ' ') {
                ans[r][h++] = str[i];
            }else{
                ans[r][h]='';//这里胡凡书上顺序错了,提供的代码少了这一句 
                r++;
                h = 0;
            }
        }
        for(int i = r; i >= 0; i--) {
            printf("%s", ans[i]);
            if(i > 0) printf(" ");
        }
        return 0;
    }
    

    简单方案

    由于PAT是单点测试,使用EOF判断是否输入完毕。

    #include<stdio.h>
    int main(){
    	int num=0;
    	char ans[90][90];
    	while(scanf("%s",ans[num])!=EOF){//未到达文件末尾时反复读取单词 
    		num++;//命令行输入时,Ctrl+Z 再Enter代表到达文件末尾 
    	}
    	for(int i= num-1;i>=0;i++){
    		printf("%s", ans[i]);
    		if(i>0) printf(" ");
    	}
    	return 0;
    }
    

    存疑

  • 相关阅读:
    Day60
    Day53
    Day50
    Day49
    Day48
    Day47
    Day46(2)
    Day46(1)
    Day45
    Day44
  • 原文地址:https://www.cnblogs.com/lingr7/p/9466587.html
Copyright © 2011-2022 走看看