【C语言】最佳找零组合

  • Post author:
  • Post category:其他


这是一个生活实际问题,当你购买了不到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);	
   }
}



版权声明:本文为qq_45838752原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。