c语言——找零问题

某人购买物品一共花了x元(x<=100),用100元现金去支付,售货员需要找零,请设计程序给出一个找零方案,并使找零的张数最少。设现有人民币面值包括:100元、50元、20元、10元、5元、1元、5角和1角。

当x包含1角以下的金额时,按照四舍五入到角之后再进行找零。

#include<stdio.h>
int main() {
	int i1,i2,i3,i4,i5,i6,i7,x,y,z;//x角,y个,z十
	float a,b,c;
	printf("输入(单位 元):");
	scanf("%f",&a);
	b=((int)(10.0*a+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)i4=1,i5=y-5;
		else i4=0,i5=y;
		//x/5  x%5  y/5  y%5
		i1=z/5;
		i2=(z%5)/2;
		i3=(z%5)%2;
		printf("共找零%.1f元:\n50元%d张,20元%d张,10元%d张,5元%d张,1元%d张,5角%d张,1角%d张",c,i1,i2,i3,i4,i5,i6,i7);
	}
}

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值