标题:计算输入的一句话中平均单词数,以下是我的代码,有点问题,请帮我解释下好 ...
取消只看楼主
blacker50
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-11-21
结帖率:71.43%
已结贴  问题点数:20 回复次数:2 
计算输入的一句话中平均单词数,以下是我的代码,有点问题,请帮我解释下好吗
#include <stdio.h>
int main()
{
    int  i  =  0, n  =  0 ;
    char  ch;
    printf("enter  a  sentence: ");
    ch  =  getchar();
    while(ch  !=  '\n'){
     ch  =  getchar();
     if (ch  ==   ' ')
     i++;
     else
     n++;}
     printf("average  word  length: %.1f",n/(i+1));
      return  0;
}这种方法可以算出我要的答案,但是ch =getchar()语句放在循环体前和if语句前
逻辑有点不对,如果输入的第一个字是字母,在循环体外就读了第一个字母,进入
循环体后是第二个输入的东西,好像会影响n的值,想不明白,求指教!
搜索更多相关主题的帖子: average include return 单词 字母 
2013-11-21 06:21
blacker50
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-11-21
得分:0 
回复 3楼 pink_duo
你好,这个方法很简便,我只是想不通自己那个程序的逻辑不大对,但结果和你的那个结果还有下面这个三种是同样的结果是同一个,在每个单词空一格并且输入的第一个数是字母情况下
printf("enter…");
ch = getchar();
while(ch !=getchar()){
if(ch==' ')
i++;
else
n++;
ch=getchar();}
2013-11-21 09:11
blacker50
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-11-21
得分:0 
回复 2楼 ceoooec
呃呃,我这个程序还有漏洞,谢谢指出,只是如果不考虑条件限制,请看下面的回复贴。。
就是搞不懂为什么三种的结果会一样,我觉得原本的程序逻辑有问题,其他两个应该是一样都对
2013-11-21 09:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-423920-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062486 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved