关于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了,只是没写出来而已? 展开
有几个问题: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了,只是没写出来而已? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询