| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 632 人关注过本帖
标题:一个找零钱的程序,求出错在哪里?
只看楼主 加入收藏
qq872551969
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:1
帖 子:241
专家分:1377
注 册:2012-7-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
一个找零钱的程序,求出错在哪里?
程序代码:
#include<stdio.h>
main()
{
    int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;
    float x;
    x=0.00000001;
    while(x>0){
        x=x*10;
        if(x>1000){
            a=a+1;
            x=x-1000;
        }
        else if(x>500){
            b=b+1;
            x=x-500;
        }
        else if(x>200){
            c=c+1;
            x=x-200;
        }
        else if(x>100){
            d=d+1;
            x=x-100;
        }
        else if(x>50){
            e=e+1;
            x=x-50;
        }
        else if(x>10){
            f=f+1;
            x=x-10;
        }
        else if(x>5){
            g=g+1;
            x=x-5;
        }
        else if(x>1){
            h=h+1;
            x=x-1;
        }
        printf("100元:%d\n50元:%d\n20元:%d\n10元:%d\n5元:%d\n1元:%d\n5毛:%d\n1毛:%d\n",a,b,c,d,e,f,g,h);
    printf("请输入找零金额:");
    scanf("%f",&x);
    }
}
没有报错,但是计算结果不正确!
2012-11-12 15:01
qq872551969
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:1
帖 子:241
专家分:1377
注 册:2012-7-13
收藏
得分:0 
程序代码:
#include<stdio.h>
main()
{
    int a,b,c,d,e,f,g,h;
    float x;
    x=0.00000001;
    while(x>0){
        x=x*10;
        a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;
        if(x>1000){
            a=a+1;
            x=x-1000;
        }
        else if(x>500){
            b=b+1;
            x=x-500;
        }
        else if(x>200){
            c=c+1;
            x=x-200;
        }
        else if(x>100){
            d=d+1;
            x=x-100;
        }
        else if(x>50){
            e=e+1;
            x=x-50;
        }
        else if(x>10){
            f=f+1;
            x=x-10;
        }
        else if(x>5){
            g=g+1;
            x=x-5;
        }
        else if(x>1){
            h=h+1;
            x=x-1;
        }
        printf("100元:%d\n50元:%d\n20元:%d\n10元:%d\n5元:%d\n1元:%d\n5毛:%d\n1毛:%d\n",a,b,c,d,e,f,g,h);
    printf("请输入找零金额:");
    scanf("%f",&x);
    }
}
最新修改后的 还是不对

编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-12 15:05
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
收藏
得分:7 
你把具体的题发下。。我再看下 你的算法思路

自由、民主、宪政!
2012-11-12 15:08
cyuyancqy
Rank: 2
等 级:论坛游民
帖 子:22
专家分:59
注 册:2012-10-31
收藏
得分:7 
你要什么样的计算结果啊?具体要求说说啊!
2012-11-12 15:12
qq872551969
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:1
帖 子:241
专家分:1377
注 册:2012-7-13
收藏
得分:0 
就是超市的找零钱程序

编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-12 15:17
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
收藏
得分:0 
程序代码:
int total, pay;
cout << "请输入购买总额: ";
cin >> total;
cout << "请输入实付金额: ";
cin >> pay;
if ( pay < total )
{
  cout << "金额不足" << endl;
}
else
{
  int balance = pay - total;
  int m2000 = balance / 2000;
  int m1000 = balance % 2000 / 1000;
  int m500 = balance % 1000/ 500;
  int m100 = balance % 500 / 100;
  int m50 = balance % 100 / 50;
  int m10 = balance % 50 / 10;
  int m5 = balance % 10 / 5;
  int m1 = balance % 5;
}

自由、民主、宪政!
2012-11-12 15:45
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:7 
#include<stdio.h>
main()
{
    int a,b,c,d,e,f,g,h;
    float x;
    x=0.00000001;
    while(x>0){
        x=x*10;
        a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;
        printf("%f\n",x);
        a=(int)x/1000; //100
        b=(int)x%1000/500; //50
        c=(int)x%1000%500/200; //20
        d=(int)x%1000%500%200/100; //10
        e=(int)x%1000%500%200%100/50; //5
        f=(int)x%1000%500%200%100%50/10; //1
        g=(int)x%1000%500%200%100%50%10/5; //5ma
        f=(int)x%1000%500%200%100%50%10%5;
         
    printf("100元:%d\n50元:%d\n20元:%d\n10元:%d\n5元:%d\n1元:%d\n5毛:%d\n1毛:%d\n",a,b,c,d,e,f,g,h);
    printf("请输入找零金额:");
    scanf("%f",&x);
    }
}
2012-11-12 17:01
qq872551969
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:1
帖 子:241
专家分:1377
注 册:2012-7-13
收藏
得分:0 
回复 6楼 lwb603569640
a=(int)x/1000; //100
您这句话是什么意思呢?

编程交流请加群:【234181324】,一起学习,一起进步,新建的群,主打C语言和JAVA等程序设计,等待高手们的入驻,无论你是高手也好,新手也好,在这里都是平等的,欢迎你们的加入~!【234181324】
2012-11-12 17:55
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 
把你的else if都改成while就ok了。
#include<stdio.h>
main()
{
    int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;
    float x;
    x=0.00000001;
    while(x>0){
        x=x*10;
        while(x>1000){
            a=a+1;
            x=x-1000;
        }
        while(x>500){
            b=b+1;
            x=x-500;
        }
        while(x>200){
            c=c+1;
            x=x-200;
        }
        while(x>100){
            d=d+1;
            x=x-100;
        }
        while(x>50){
            e=e+1;
            x=x-50;
        }
        while(x>10){
            f=f+1;
            x=x-10;
        }
        while(x>5){
            g=g+1;
            x=x-5;
        }
        while(x>1){
            h=h+1;
            x=x-1;
        }
        printf("100元:%d\n50元:%d\n20元:%d\n10元:%d\n5元:%d\n1元:%d\n5毛:%d\n1毛:%d\n",a,b,c,d,e,f,g,h);
    printf("请输入找零金额:");
    scanf("%f",&x);
    }
}
2012-11-13 13:29
快速回复:一个找零钱的程序,求出错在哪里?
数据加载中...
 
   



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

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