用c语言编写一个程序,用户输入一个整数,代表其手上拥有的现金数,然后显示出如何转换成最少数目的零钱
时间: 2024-10-23 19:19:55 浏览: 11
在C语言中,我们可以编写一个简单的程序来解决这个问题。这里我们假设已知有四种面额的硬币:1元、5角、2角和1角。你可以使用嵌套循环来尝试每种可能的组合,并找到最少的数量。以下是代码示例:
```c
#include <stdio.h>
// 定义硬币面额
#define COIN_VALUES {1, 0.5, 0.2, 0.1}
int min_coins(int cash) {
int coins[4] = {0}; // 初始化四种硬币计数为0
int i;
for (i = 3; i >= 0 && cash > 0; i--) { // 从大面额开始尝试
while (cash >= COIN_VALUES[i]) { // 当有足够的硬币时
cash -= COIN_VALUES[i]; // 减少现金并加一枚硬币
coins[i]++;
}
}
return coins[0] + coins[1] + coins[2] + coins[3]; // 返回总硬币数
}
int main() {
int cash;
printf("请输入你要找零的金额:");
scanf("%d", &cash);
if (cash <= 0) {
printf("无需找零。\n");
} else {
int min_coins_count = min_coins(cash);
printf("最少需要 %d 枚硬币:\n", min_coins_count);
printf("1元: %d\n", coins[0]);
printf("5角: %d\n", coins[1]);
printf("2角: %d\n", coins[2]);
printf("1角: %d\n", coins[3]);
}
return 0;
}
```
当你运行这个程序时,它会提示用户输入现金数额,然后计算出对应的最少硬币组合及其数量。
阅读全文