c语言输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

图片说明
这是我写的代码为啥运行不出结果

 #include<stdio.h>   
int main()   
{   
char c[100];int j=1;int i; 
gets(c);   
for(i=0;;i++)   
if(('a'<=c[i]&&c[i]<='z')||('A'<=c[i]&&c[i]<='Z')) break;   
for(;;i++)   
{if(c[i]==' ') j++;     
if(c[i]='\0') break;
i++; 
}   
printf("There are %d words in the line.\n",j);   
return 0;   
}  

c[i]='\0'
->
c[i]=='\0'

i++;
这个也多余。

第一个循环其实也用不着。你的程序错误百出,建议直接参考google上现成的程序,把思路搞清楚。

另外,如果我的回答对你有帮助,请及时采纳。谢谢。

题目:输入一行字符,统计其中有多少单词,单词之间用空格分隔开。
下面是运行结果:

下面是我编写的源代码:

#include <stdio.h>
//输入一行字符,统计其中有多少单词,单词之间用空格分隔开
int main()
{
int i,num=0,word=0;
char string[80];
char c;
gets(string......
答案就在这里:C语言:输入一行字符,统计其中有多少单词,单词之间用空格分隔开
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

#include
int main()
{
char string[1000];
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("%d",num);
}

首先,if语句那里少了一个等号,这是细节问题,
后面if语句后面那个i++是多余的,
再有就是,这个程序在输入的全都不是英文的情况下还是显示会有一个单词,没有英文单词不应该是0个吗?

lz已经看了你好几道程序题了,你的代码思路确实如楼上所说有点问题,先好好整理归纳一下再做题吧,这样效果会更好