关于统计一句话中的单词个数的问题,

问题描述:

关于统计一句话中的单词个数的问题,
我的程序为什么总是输出的是0?
#include"stdio.h"
int countword();
main()
{
printf("%d\n",countword());
}
int countword()
{
int flag=0,new=0;char c;
while((c=getchar())!='\n')
{
if(c!=" ")
flag=1;
else if(flag==1)
{
flag=0;
new++;
}
}
return new;
}
1个回答 分类:综合 2014-11-17

问题解答:

我来补答
首先把new改写成newword,因为new是系统的保留字,再一个,if(c!=" ")
改成if(c!=' '),第三个,按照你的程序来看的话,还要改一个地方,你定义new的初值为0,比如我输入good boy后回车,当判断到空格的地方时,flag的值变为1,执行else if语句,new++,现在new的值为1,继续判断,最后判断到回车也没有空格,退出循环,此时程序的运行结果为1,但实际应该为2啊,所以说你的思路稍微有点错误,但只要将new的初值赋为1便OK了
正确的程序:
#include"stdio.h"
int countword();
main()
{
printf("%d\n",countword());
}
int countword()
{
int flag=0,new=1;char c;
while((c=getchar())!='\n')
{
if(c!=' ')
flag=1;
else if(flag==1)
{
flag=0;
new++;
}
}
return new;
}
 
 
展开全文阅读
剩余:2000
下一页:先解十一题