伪代码:
1.读入数据;
2.用记下空格的位置;
3.用循环(这里的count用起来好像指针hhh)来完成对应的输出;
#include <stdio.h>
int main(){
char a[100000],b[100000];
int i=0,count=0;
while((a[i]=getchar())!='\n'){
if(a[i]==' ')
b[count++]=i;
i++;
}
for(i=b[--count]+1;count>=0;i=b[--count]+1){
while(a[i]!=' '&&a[i]!='\n'){
printf("%c",a[i]);
i++;
}
putchar(' ');
}
for(i=0;a[i]!=' '&&a[i]!='\0';i++)
printf("%c",a[i]);
return 0;
}
第一次输入的时候就不用for循环了,这里while循环更加简洁有力(未知循环次数);
第一个for循环那里,注意是--count;
而且初始化的时候不写"i=b[count-1]+1"而是写"i=b[--count]+1",这是因为前者初始化后count的知并没有改变,相当于第一个count被用了两次,打印出两个的"Come";而后者就避免了这个问题。