给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式:
输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
我的答案
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i=0, cnt;
char a[80][80];
while(1){
scanf("%s", a[i++]);
if(getchar()==0x0A)break; //结束检查机制
//scanf的输入会被空白符打断,但不吸收后面的空白符(只吸收%的之前的空白符)
//因此最后的enter和中间间隔的space都会被getchar读入作判断
//getchar读入一个字符,将ASCII值返回。只有getchar和gets这两种
}
cnt = i;
for(i=cnt-1; i>=0; i--){
if(i>0) printf("%s ", a[i]);
else if(i==0) printf("%s", a[i]);
}
return 0;
}