| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:请高手帮忙,这个程序减法怎么不对呢?还是这个问题,没有解决呀
只看楼主 加入收藏
yolandazq
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-25
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
请高手帮忙,这个程序减法怎么不对呢?还是这个问题,没有解决呀
请高手帮忙,这个程序减法怎么不对呢?
程序要求是输入一个数,可以分成几个50,几个20等等。问题是到小数时总不对,请帮忙吧,急死了。。。。。比如输入20.9,结果应该是20 1个,0.5 1个,0.2 2个,0.1 1个。但是结果总是0.2 1个。多谢各位了。

void main()
{
    int coinsInt[6]={50,20,10,5,2,1};
    float coinsF[3]={0.5,0.2,0.1};
    int num;
    int j,k;
    float sum;
    scanf("%f",&sum);
    for(j=0;j<=5;j++){
        num=sum/coinsInt[j];
        if (num!=0)
            printf("$%d    %d\n",coinsInt[j],num);
        sum-=num*coinsInt[j];
        if(sum<1){
            for(k=0;k<=2;k++){
                num=sum/coinsF[k];
                if (num!=0)
                    printf("$%.1f    %d\n",coinsF[k],num);
            sum-=num*coinsF[k];
            }
        }
    }
}

高手给回复了,但是还是不对呀,急切等待中。。。。
2011-10-27 16:32
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:20 

********多贴代码,少说空话*******
2011-10-27 16:50
yolandazq
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-25
收藏
得分:0 
不对呀,我试了用67.7,结果还是少计了一个0.1
2011-10-27 17:03
ppfly
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:297
专家分:1956
注 册:2009-5-17
收藏
得分:0 
那就改下精度吧,把while(sum-coinsF[k]>=-1e-6)改为while(sum-coinsF[k]>=-1e-3)

********多贴代码,少说空话*******
2011-10-27 17:23
yolandazq
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-10-25
收藏
得分:0 
多谢了,有什么区别吗?麻烦给详细说明一下吧,
2011-10-28 09:33
快速回复:请高手帮忙,这个程序减法怎么不对呢?还是这个问题,没有解决呀
数据加载中...
 
   



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

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