【C语言】最佳找零组合

这是一个生活实际问题,当你购买了不到100元的商品,却交给了售货员一张100元的货币…售货员就得考虑如何组合给你找钱。

题目:找零钱最佳组合

假设商店货品价格皆不大于100(且为整数),若顾客付款在100,求找给顾客之最少货币张数?
(货币面值50元,10元,5元,1元四种)

代码:

#include<stdio.h>
int main() 
{	
   int m50, m20, m10, m5, m1, i6, i7, x, y, z;	
   float price, b, c;	
   printf("输入购买商品价格(单位:元):");	
   scanf("%f", &price);	
   b = ((int)(10.0*price+0.5))/10.0;	
   c = 100.0 - b;	
   if(b<=0.0||b>=100.0)
       printf("请重新输入\n");	
   else 
   {		
       x=((int)(10*c))%10;		
       y=((int)(10*c))%100/10;		
       z=10*c/100;		
       if(x>=5)
           i6=1,i7=x-5;		
       else 
           i6=0,i7=x;		
       if(y>=5)
           m5=1,m1=y-5;		
       else 
           m5=0,m1=y;		
       m50=z/5;		
       m20=(z%5)/2;		
       m10=(z%5)%2;		
       printf("共找零%.1f元:\n50元%d张,20元%d张,10元%d张,5元%d张,1元%d张",c,m50,m20,m10,m5,m1);	
   }
}
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值