c语言将一笔钱(大于8分),小于1元,精确到分)换成5分、2分、1分的硬币(保证每种硬币之少1枚)。如果有多种换法,输出硬币数量最少的那种。
时间: 2024-03-08 09:50:07 浏览: 193
以下是用C语言编写将一笔钱换成5分、2分、1分硬币的程序(保证每种硬币至少1枚):
```c
#include <stdio.h>
int main() {
int money; // 一笔钱,单位为分
printf("请输入一笔钱(大于8分,小于1元,精确到分):");
scanf("%d", &money);
int a, b, c; // 分别表示5分、2分、1分硬币的数量
int min_num = money; // 最少的硬币数量
int min_a, min_b, min_c; // 最少硬币数量对应的硬币数量
// 枚举硬币数量,找到最少的硬币数量
for (a = 1; a <= money / 5; a++) {
for (b = 1; b <= money / 2; b++) {
c = money - 5 * a - 2 * b;
if (c >= 1 && c <= 100 && a + b + c < min_num) {
min_num = a + b + c;
min_a = a;
min_b = b;
min_c = c;
}
}
}
printf("%d分可以换成以下硬币:\n", money);
printf("5分:%d枚\n", min_a);
printf("2分:%d枚\n", min_b);
printf("1分:%d枚\n", min_c);
return 0;
}
```
运行程序后,输入想要换成硬币的钱数,即可输出换成最少硬币数量的硬币方案。
阅读全文