给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
下面为我的代码
#include<stdio.h>
#include<string.h>
main()
{
char s[500001];
int a[500001];
memset(s,0,sizeof(s));
memset(a,0,sizeof(a));
gets(s);
int n;
for(int i=0;s[i]!=0;i++)
{
a[i]=(int)s[i];
n++;
}
int m=0;
int b[500001];
memset(b,0,sizeof(b));
for(int i=0;i<n;i++)
{
if(a[i]>='A'&&a[i]<='Z')
{
b[m]=i;
m++;
}
}
for(int i=m-1;i>=0;i--)
{
for(int j=b[i];a[j]!=' '&&a[j]!=0;j++)
{
printf("%c",s[j]);
}
if(i!=0)
{
printf(" ");
}
}
}
最后这个不懂是什么意思