初学c语言编程问题?
发布网友
发布时间:2022-04-24 01:47
我来回答
共3个回答
热心网友
时间:2023-07-03 18:17
考虑什么时候word==0,只有2种情况
一种是程序刚开始word=0,
另一种是if(c==' '),也就是遇到空格的时候
所以当你遇到不是空格,并且word==0时,是不是说明,遇到一个新的单词了,那么word=1说明进入到一个单词,计数,num++。
举个例子,比如输入是hello my friend
当遇到第一个字符,也就是h的时候,word肯定等于0,因为程序一开始,我们就是让word=0,此时h不是空格,那么进入else if(word==0) word=1,num++
接下来遇到e这个字符,此时,e不是空格,那么单词数要不要加呢?不用,因为此时word=1,我们无法进入else if(word==0),word=1,num++ 这里面,以此类推,直到遇到第一个空格,也就是m前面那个空格,于是if(c==' ') word=0;
再接下来,遇到m了,m不是空格,并且word==0,那么进入else if(word==0) word=1,num++,此时num=2了,正好符合事实,的确我们已经遇到第二个单词了
综上所述,这里的else if(word==0) 的意思就是从一个空格进入一个新的单词,进入了新的单词,当然要num++
热心网友
时间:2023-07-03 18:18
是为了防止行尾出现空格被记录在内,所以哪怕是sting[0]出现空格,只有在sting[1]有字符的时候才会被计算在内.不过因为初始值的原因,最后的结果会比实际的空格数多1
热心网友
时间:2023-07-03 18:18
纯属个人理解,可能有误。