关于C语言教科书里的例题,鄙人没看懂,想请教下!

C语言清华版谭浩强所著第四版里6.3.7字符数组应用章节里的例6.8有几个问题:1、解题思路说如果测出某个字符为非空格,而前一个字符是空格,则表示“新的单词开始了”,此时... C语言清华版谭浩强所著第四版里6.3.7字符数组应用章节里的例6.8

有几个问题:1、解题思路说如果测出某个字符为非空格,而前一个字符是空格,则表示“新的单词开始了”,此时使num累加1。这样是不是漏了开头那个单词,因为它前面什么都没有?2、关于表里word原值、新值没看明白是什么。第一行的原值word在经过了后面的当前字符,值不就已经在变化了?所以下面那行新值不知道是新在哪里了?3、程序里的条件语句:if(c==' ') word=0; //如果是空格字符,使word置0else if(word==0) //如果不是空格字符,且word原值为0{word=1;num++;}这里的注释:“如果不是空格字符,且word原值为0”存在疑惑。可能我个人以前在学习if...else if 语句理解不深刻。以前一直以为if.....else if是例如这样的:if(a=0) {.....}else if(a>0){....}即else if后面的条件也是唯一一个确定的条件,但看到这道例题,感觉他是这个意思:if(a=0){....}else //这个else是a<0或a>0,然后这个大范围里面加上下面的if里的条件, if(a>0){....}平时用的时候感觉不到这种区别,因为else if里的条件一般都可以看成单独的,但这个例题里:if(c==' ') word=0; //如果是空格字符,使word置0else if(word==0) //如果不是空格字符,且word原值为0{word=1;num++;}如果认为else if 只是说word==0而已,那么就有问题了。因为没有把if....else if当成一个整体的语句来看,那样就上面的if成立,word已经置0了,else if里的word==0就也成立了,所以这种情况下,其实if....elseif....语句是隐含了条件在下面的,也就是else已经是c!=0了,只是没写出来而已?
展开
 我来答
风刀夜血
推荐于2016-10-27 · TA获得超过498个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:123万
展开全部
  1. 开始的word原值为0,所以默认为新单词,不会漏掉。

  2. 之前原值0-否,新值是1,原值1-是,新值是0,就是通过word新值的0来将句子划分为单词

  3. 如同我的2,只有0-否才会置新值为1.     1-否和0-是都不会,所以才有c==' '(否)和word==0(0),两个条件都满足时,新值才会是1.

    希望解决了你的疑问!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式