c语言找零钱问题

2025-02-23 18:35:52
推荐回答(3个)
回答1:

double iChange=0;
double taget=0.72;
double Money[5] = { 0.5, 0.1, 0.05, 0.02, 0.01};
double ArrChange[100];
for语句将ArrChange置零;
int CountCoin=0;
while(iChange != taget )
{
for(int i = 0 ; i < 5 ; i ++)
{
if(iChange + Money[i] > taget)continue;
else
{
iChange += Money[i];
ArrChange[CountCoin] = Money[i];
CountCoin++;
}
}

}
//基本是这么个思路,如果一点也不思考对你没好处,原理就是找多了就换小的,尽量选大的钱

回答2:

#include "stdio.h"
#define COIN_TYPES 5
int main(int argc, char* argv[])
{

int coin[]={50,10,5,2,1};
char* types[]={"5角","1角","5分","2分","1分"};
int result[COIN_TYPES];// 存入各种硬币都需要多少个
int q ,odd;
printf("给顾客找多少分钱?\n");
scanf("%d" , &q);
odd=q;

printf("给顾客找:\n");
for(int i=0;i {
result[i] = odd/coin[i];
odd = odd%coin[i];
if(result[i]>0)
printf(" %s 的硬币 %d 个\n", types[i], result[i]);
}

return 0;
}

回答3:

C++代码,VS2010下编译成功,可直接运行,请建立win32控制台程序

输入示例:

1.35,按回车后分解为一个1元,三个0.1元,一个0.05元

3.2//略

0.22//略

0.03//略

157.0//略