输入金额,算出需付20,10,5,1元的张数

#include <stdio.h>

void find_closest (int dollars, int *twenties,int *tens, int *fives,int *ones);

int main()
{
	int dollars;
	int twenty,ten, five,one;
	printf("enter dollar amount:");
	scanf("%d",&dollars);
	find_closest (dollars,&twenty,&ten, &five,&one);
	printf("$20:%d;\n$10:%d;\n$5:%d;\n$1:%d;\n",twenty,ten, five,one);
	
	return 0;
}

void find_closest (int dollars, int *twenties,int *tens, int *fives,int *ones)
{
	*twenties=(dollars-dollars%20)/20;
	dollars-=*twenties*20;
	
	*tens=(dollars-dollars%10)/10;
	dollars-=*tens*10;
	
	*fives=(dollars-dollars%5)/5;
	dollars-=*fives*5;
	
	*ones=dollars;	
}

在其他人的博客上看到了一个好的解法
#include<iostream>  
using namespace std;  
int main()  
{  
    int sum;  
    int a[6] = { 0 };//a[0]:100,a[1]:50,a[2]:20,a[3]:10,a[4]:5,a[5]:1;  
    cin >> sum;  
    int piao[6] = {100,50,20,10,5,1};  
    for (int i = 0; i < 6; i++)  
    {  
        a[i] = sum / piao[i];  
        sum = sum % piao[i];  
        cout << a[i] << endl;  
    }  
    return 0;  
}  



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值