一道c语言问题(回答满意的话另外再加分)

#include<stdio.h>#defineIN1#defineOUT0voidmain(){charstring[80],c;inti,num=0,word=OUT... #include <stdio.h>
#define IN 1
#define OUT 0
void main ( )
{
char string[80], c;
int i, num=0, word = OUT;
gets (string);
for (i = 0; (c = string[i]) != '\0'; i++)
if (c == ' ') //判断c是否为空格
word = OUT;
else
if (word == OUT)
{
word = IN;
num++;
}
printf ("There are %d words in the line.\n", num);
}
加上下面这几句有什么作用,为什么?
word = OUT;
else
if (word == OUT)
{
word = IN;
展开
 我来答
wangbwell
2009-08-18 · TA获得超过1238个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:726万
展开全部
目的:统计单词数目
if (c == ' ')
word = OUT; //空格表示单词结束
else
if (word == OUT)
{
word = IN;//非空格表示单词开始
num++;
}

比如
string[80],="hello word":
开始 word = OUT
接着 string[0]时 word = IN 单词开始 num==1
接着 string[1-4]时 word = IN (if-else派段都为假)
接着 string[5]时 word = OUT
接着 string[6]时 word = IN 单词开始 num==2

接着 string[7-9]时 word = IN (if-else派段都为假)
最后 string[10]时 退出for循环

共两个单词
百度网友c4249ef
2009-08-18 · TA获得超过4866个赞
知道大有可为答主
回答量:1855
采纳率:0%
帮助的人:3180万
展开全部
word = OUT;//如果为空格标记为OUT
else
if (word == OUT)//如果前一个为空格,这一个不是空格,单词数加1,同时标记还原
{
word = IN;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zerowpt
2009-08-18 · TA获得超过449个赞
知道小有建树答主
回答量:416
采纳率:0%
帮助的人:93.2万
展开全部
是这样的,开头定义了IN=1,OUT=0
这个WORD相当于一个判断器,当c是空格的时候它被赋值0,循环。如果不是空格,则再判断前一项是不是空格,是的话计数器+1.简单来说这是一个计算单词数的程序。
这几句这么翻译:把OUT的值赋值给WORD,判断若WORD=OUT,则给WORD赋值IN。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ygqsasfx
2009-08-18
知道答主
回答量:27
采纳率:0%
帮助的人:0
展开全部
防止出现多个连续的空格次数算多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式