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++;
}
}
}
//基本是这么个思路,如果一点也不思考对你没好处,原理就是找多了就换小的,尽量选大的钱
#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;
}
C++代码,VS2010下编译成功,可直接运行,请建立win32控制台程序
输入示例:
1.35,按回车后分解为一个1元,三个0.1元,一个0.05元
3.2//略
0.22//略
0.03//略
157.0//略