zoukankan      html  css  js  c++  java
  • 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;
    }
    
    
  • 相关阅读:
    Vue- 对象语法 v-bind:class与对象语法的使用(重要)
    关于vue中$emit事件问题
    深入理解vue.js2.0指令v-for使用及索引获取
    到底vuex是什么?
    Vue.js学习系列二 —— vuex学习实践笔记(附DEMO)
    前端HTML5几种存储方式的总结
    JSON和JS对象之间的互转
    Vue2.0子父组件通信
    C#字符串和16进制转换
    C#中int32 的有效值范围
  • 原文地址:https://www.cnblogs.com/chance-zou/p/10279714.html
Copyright © 2011-2022 走看看