关于统计一句话中的单词个数的问题,我的程序为什么总是输出的是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
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 22:29:44
关于统计一句话中的单词个数的问题,我的程序为什么总是输出的是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
关于统计一句话中的单词个数的问题,
我的程序为什么总是输出的是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;
}
关于统计一句话中的单词个数的问题,我的程序为什么总是输出的是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
首先把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;
}