这个C程序哪里不对?为什么结果不对?

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:47:40
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
#include <stdio.h>
main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c=='') word=0;
else if(word=0)
{
word=1;
num++;
}
printf("There are %d words in the line.\n",num);
}
为什么输入I am a boy.输出结果单词数是1?

楼主写稍微复杂了一点,你看我帮你改的代码.
#include <stdio.h>
void main()
{
char string[81];
int i,num=1;
char c;
gets(string);
for(i=0;(c=string[i])!='\0';i++)
if(c==' ') //注意这里是'空格'
num++;
else if(num==0)
num=1;

printf("There are %d words in the line.\n",num);
}

两处错误
if(c=='') word=0;改为if(c==' ') word=0;
else if(word=0)改为else if(word==0)