关于统计一句话中的单词个数的问题,请高手回答

来源:百度知道 编辑:UC知道 时间:2024/05/22 19:15:22
我的程序为什么总是输出的是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;
}

首先把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;
}

我还没学算法,嘿嘿,学会后在告诉你

if(c!=" ") 双引号改单引号

#include"stdio.h"
#include<stdlib.h>
int countword();
main()
{
printf("%d\n",countword());
system("pause");}
int countword()
{
int news=0;char c;
while((c=getcha