改错:C语言,输入一行字符,以回车结束,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个

程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一行字符,以回车结束,统计其中单词的个数。各单... 程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一行字符,以回车结束,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。
输入输出示例:括号内是说明
输入
2 (repeat=2)
Let's go to room 209.
Programming is fun
输出
count = 5 ("Let's go to room 209."中有5个单词)
count = 3 (" Programming is fun"中有3个单词)
#include <stdio.h>
int main(void)
{
char c;
int count, word;
int repeat, ri;

scanf("%d", &repeat);
getchar();
for(ri = 1; ri <= repeat; ri++){
c = getchar();
/*---------*/
printf("count = %d\n", count);
}
}

这是我的程序,出错,求帮忙改错

#include <stdio.h>
int main(void)
{
char c;
int count, word;
int repeat, ri;
scanf("%d", &repeat);
getchar();
for(ri = 1; ri <= repeat; ri++){
c = getchar();
word=1;
count=0;
while(c!="\0"){
if(c!=" "&&word==1){
count++;
word=0;}
else if(c==" ") word=1;
c = getchar();
}
printf("count = %d\n", count);
}
}

思路是取字符,word变量作为标记符,count来计数。
附上思路图,求解答..
展开
 我来答
风雷冰火土
推荐于2017-12-16 · TA获得超过1285个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:187万
展开全部
主要是你的 c!="\0" 和两处 c==" " 的问题,因为c是char 字符类型,而双引号""里面的内容算是字符串,尽管只有1位也还是字符串,跟字符不一样。所以比较不出来。
然后我又把 c!='\0' 这里的 '\0' 改成了 '\n',\0我实在是不太懂,因此换成了\n,这样每输入一个回车就算是一句。
然后我这里就可以运行了。欢迎LZ改改看~

参考资料: P.S LZ你的图是用手绘板画的?画的很飘逸啊~

太平洋来的风
2012-12-27 · TA获得超过190个赞
知道小有建树答主
回答量:582
采纳率:100%
帮助的人:249万
展开全部
谭浩强第二版 <<c语言程序设计>>有原代码.

不用限制输入多少个字符,只需限制输入什么就结束判断就行.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式