NOI 1.7编程基础之字符串 27:单词翻转代码找不到错误
#include
#include
int main(){
char s[600],a[600]={0},z;
int i=0,j=0,k;
gets(s);
int len=strlen(s);
if(len==0) return 0; //防止一个单词都没有
for(i=0;ifor(j=i;jif(s[j]!=' '&&s[j]!='\n'&&s[j]!=EOF&&s[i]!='0') a[j]=s[j];
else break;
}
i=j;
if(j==z) printf(" "); //防止开头就是空格 和 连续的空格
else {
for(j=i-1;j>=z;j--) printf("%c",a[j]);
if(i' ') printf(" ");
}
}
return 0;
}
代码修改如下:
#include <stdio.h>
#include <string.h>
int main() {
char s[600], a[600] = { 0 }, z;
int i = 0, j = 0, k;
gets(s);
int len = strlen(s);
if (len == 0) return 0; //防止一个单词都没有
for (i = 0; i < len; i++)
{
if (s[i] == ' ')
{
if (j > 0)
{
for (z = j - 1; z >= 0; z--)
printf("%c", a[z]);
}
printf(" ");
j = 0;
}
else
{
a[j++] = s[i];
}
}
if (j > 0)
{
for (z = j - 1; z >= 0; z--)
printf("%c", a[z]);
}
return 0;
}
不能读取单词之后反向输出读取的单词吗?你这样写的很复杂
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!