1009

来源:互联网 发布:pcb设计软件 编辑:程序博客网 时间:2024/06/10 22:32
/*给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <stack>#define MAX 100005using namespace std;int main() {//一个测试点不对17分,并不知道哪里不对  /*char s[100], re[100];gets(s);int i, j = 0, t;if(s[0] == ' ') {printf(" ");}for(i = strlen(s) - 1; i >= 0; i--) {if((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) {re[j++] = s[i];if(i == 0) {//记录到最后一个单词时特殊直接输出re[j] = 0;for(t = j - 1; t >= 0; t--) {printf("%c", re[t]);}}}else {//遇到空格时输出单词re[j] = 0;for(t = j - 1; t >= 0; t--) {printf("%c", re[t]);}printf(" ");j = 0;//归零重新计数}}*///百度了一下,看到的方法,感觉差不多的思路啊,只是简单一些别人的,不知道为啥过了 char s[100], re[100][100];gets(s);int i, j = 0, cnt = 0;for(i = 0; s[i]; i++) {if(s[i] == ' ') {//遇到空格,归零重新计数j = 0;cnt++;continue;}re[cnt][j++] = s[i];//用二维数组存,一次性输出}for(i = cnt; i > 0; i--) {printf("%s ", re[i]);}printf("%s\n", re[i]);return 0;}

0 0
原创粉丝点击