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