输入一段话,出现句号,感叹号,问号时,句子结束。按照反向的单词顺序输出。是C现代方法第8章数组的课后题。
一个问题是:while()循环中,(pun=getchar())!='.'&&(pun=getchar())!='!'&&(pun=getchar())!='?不知为什么不对。所以我只添加了一个条件:(pun=getchar())!='.'暂时没出错。
第二个问题,我这个运行后,倒数第一个单词的最后一个字母显示不出来。例如give me a five.输出结果是fiv a me give.少了一个e。但我实在找不到了。谢谢谢谢
#include
int main(void)
{
char message[100],pun;
int i=0,m=0,n=0,i_1;
printf("Enter a sentence :");
while((pun=getchar())!='.'){
message[i]=pun;
i++;
}
n=i-1;
while(n>0){
n--;
m=n;
if(message[m]==' '){
for(;m+1<(i-1);m++){
printf("%c",message[(m+1)]);
}
printf("%c",message[n]);
i=n+1;//留给i作为此时剩下的长度.
}
}
for(i_1=0;i_1<i-1;i_1++)
printf("%c",message[i_1]);
printf("%c",pun);
return 0;
}