• 1009 说反话 (20 分)


    题目:1009 说反话 (20 分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

    Hello World Here I Come

    输出样例:

    Come I Here World Hello
    TIM截图20190116215013.png

    首先给出我最初的想法实现,提交后只是部分答案正确,至于为什么有部分答案错误实在没弄清楚,如果你可以帮我看出来,请在评论区指出,谢谢。

    #include <iostream>
    #include<string>
    using namespace std;
    
    int main()
    {	
    	char str[81]=" ";
    	cin.get(str, 81);
    	int i,j;
    	i = 80;
    	while (str[i] == '') {
    		i--;
    	}
    	j = i;
    	i++;
    	for (j;j > 0;j--) {
    		if (str[j] == ' ') {
    			int k = j;
    			k++;
    			for (k;k <= i;k++) {
    				cout << str[k];
    			}
    			i = j;
    		}
    	}
    	for (j;j < i;j++) {
    		cout << str[j];
    	}
    	return 0;
    }
    
    

    本题的解题思路:

    我们首先使用一个字符数组来接收含有空格的字符串,采用cin.get(字符数组名,接收字符数目)
    再使用一个二维数组来对单词进行分隔,每一行代表一个单词,列号代表单词的输入顺序。
    最后按列号逆序输出即可。

    #include <iostream>
    #include<string>
    using namespace std;
    
    int main()
    {	
    	char str[90][90];
    	char in[90]=" ";
    	int h = 0,l = 0;
    	cin.get(in, 90);
    	for (int i = 0;i < 90;i++) {
    		if (in[i] != ' ') {
    			str[h][l++] = in[i];
    		}
    		else {
    			str[h][l] = '';
    			h++;
    			l = 0;
    		}
    	}int num = 0;
    	while (h >= 0) {
    		if (num > 0) {
    			cout << " ";
    		}
    		num++;
    		cout << str[h];
    		h--;
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    Kubernetes实战模拟三(wordpress健康检查和服务质量QoS)
    Kubernetes实战模拟二(wordpress高可用)
    Kubernetes实战模拟一(wordpress基础版)
    Rook部署测试Ceph和wordpress实战应用
    kettle作业转换的执行
    BUU BURP COURSE 1
    BUU SQL COURSE 1
    BUU CODE REVIEW 1
    查看FGC
    Pod大量为Evicted被驱逐状态
  • 原文地址:https://www.cnblogs.com/chance-zou/p/10279714.html
Copyright © 2020-2023  润新知