#include <stdio.h>
#include <string.h>
//给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
//解决行首多空格,行中多空格,行尾多空格。
//从单词的尾部进行考虑,首部默认数组内层开始,
//一个单词结尾判断并从头开始,最后一位判断有无空格进行取舍
int main(){
int l=0,m2=0;
char in[100],a[20][20];
gets(in);
l=strlen(in);
for(int i=0,j=0,m=0;i<l;i++){
if( in[i]!=' ' ){
a[m][j++]=in[i];
} else if( in[i]==' ' && in[i-1]!=' '&&i!=0){
//字符数组,手动添上结束标志
a[m][j] ='\0';
j=0;
m++;
}
m2=m;
}
//对行尾的的多余空格进行判断。
if(in[l-1]==' '){
m2--;
}
for(int i=m2 ;i>0;i--){
printf("%s ",a[i]);
}
printf("%s\n",a[0]);
printf("单词共有%d个\n",m2+1);
return 0;
}