#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;
}