| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 451 人关注过本帖
标题:我的其中一个值总是,显示不出,不知道哪里出了问题,求解。
只看楼主 加入收藏
墨玉紫冠
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-8-4
结帖率:75%
收藏
已结贴  问题点数:5 回复次数:6 
我的其中一个值总是,显示不出,不知道哪里出了问题,求解。
# include <stdio.h>

int main(void)
{
    int i;
    int sum = 0;
    int cnt = 0;
    double avg;

    for (i=1; i<101; ++i)
    {
        if (i%2 == 1)
        {
            sum += i;
            ++cnt;
        }   
    }
    avg = sum / cnt;
   
    printf("sum = %d\n", sum);
    printf("cnt = %d\n", cnt);
    printf("avg = %d\n", avg);

    return 0;
}
/*
运行结果为:sum = 2500
            cnt = 50
            avg = 0》》》》就是这里为什么会是零???
            Press any key to continue
            Press any key to continue
*/
搜索更多相关主题的帖子: include double return 
2014-08-04 17:54
清晨十分
Rank: 1
来 自:四川
等 级:新手上路
帖 子:9
专家分:1
注 册:2013-1-26
收藏
得分:1 
avg = sum / cnt;
这样行吗?

寻梦?撑一支长篙
2014-08-04 19:44
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:2 
输出有问题
printf("avg = %lf\n", avg);

严格来说
avg = sum / cnt;
这一句也有问题,int除以int结果也是个int,然后再转换成double,会丢失小数。
所以最好是把sum设置成double 或者修改成下面的
avg = 1.0 * sum / cnt;

avg = (double)sum / cnt;

这2句也是把sum转成double。

[ 本帖最后由 apull 于 2014-8-4 20:03 编辑 ]
2014-08-04 19:54
乖乖0943
Rank: 2
等 级:论坛游民
帖 子:33
专家分:42
注 册:2014-8-1
收藏
得分:0 
回复 3 楼 apull
你好,我也是开始学c的,这个可以写成把cnt改成(double)cnt么?还是只能改除号以前的?我一直没弄懂,除号时应该两个改哪个?还是都可以改。。。
2014-08-04 20:11
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:1 
随便哪个改成double都可以,int和double运算会默认把int转换成double在进行计算的。
2014-08-04 22:26
墨玉紫冠
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-8-4
收藏
得分:0 
回复 3 楼 apull
谢谢,我已经改正了。
2014-08-04 23:38
imlwg
Rank: 1
等 级:新手上路
帖 子:6
专家分:8
注 册:2014-8-5
收藏
得分:1 
回复 楼主 墨玉紫冠
double为双精度实型,是f。%d为十进制整型,用%f就通过了,不用再转换类型
2014-08-05 21:07
快速回复:我的其中一个值总是,显示不出,不知道哪里出了问题,求解。
数据加载中...
 
   



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

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