给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。
输出格式:每个测试用例的输出占一行,输出倒序后的句子。
输入样例: Hello World Here I Come 输出样例: Come I Here World Hello
解题思路:用一个数组找出所有空格的位置,这样就把所有的单词分出来了。。。第一次空格没处理好,提交就5分,处理好空格就对了
#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<queue> using namespace std; int main() { char s[100]; int a[100],j=0;///a数组记录字符串的位置 gets(s); int l=strlen(s); a[j++]=l; for(int i=l-1;i>=0;i--) if(s[i]==' ') a[j++]=i; for(int i=1;i<j;i++) { for(int k=a[i]+1;k<a[i-1];k++) printf("%c",s[k]); printf(" "); } /*for(int i=1;i<j;i++) { for(int k=a[i]+1;k<=a[i-1];k++) printf("%c",s[k]); }*/ for(int i=0;i<a[j-1];i++)///输出最后一个单词 printf("%c",s[i]); printf("\n"); return 0; }
