用c语言写,实现用一元人民币换成一分,两分,五分的硬币共50枚
时间: 2023-10-18 13:04:13 浏览: 91
以下是一份可能的实现:
```c
#include <stdio.h>
int main() {
int count_1 = 0; // 1分硬币数量
int count_2 = 0; // 2分硬币数量
int count_5 = 0; // 5分硬币数量
int rmb; // 输入的人民币金额
printf("请输入要兑换的人民币金额(单位:元):");
scanf("%d", &rmb);
int total_count = 0; // 硬币总数
int remaining_rmb = rmb * 100; // 剩余需要兑换的钱数(单位:分)
while (total_count < 50 && remaining_rmb > 0) {
if (remaining_rmb >= 5) {
count_5++;
remaining_rmb -= 5;
} else if (remaining_rmb >= 2) {
count_2++;
remaining_rmb -= 2;
} else {
count_1++;
remaining_rmb -= 1;
}
total_count++;
}
printf("使用 %d 枚 1 分硬币,%d 枚 2 分硬币,%d 枚 5 分硬币,共计 %d 枚硬币。\n", count_1, count_2, count_5, total_count);
return 0;
}
```
首先,我们定义了三个变量 `count_1`、`count_2`、`count_5` 分别表示 1 分、2 分、5 分硬币的数量。然后,我们通过 `scanf` 函数让用户输入要兑换的人民币金额,并将其保存在变量 `rmb` 中。接下来,我们定义了另外三个变量 `total_count`、`remaining_rmb` 和 `i`,分别表示硬币总数、剩余需要兑换的钱数和循环计数器。然后,我们进入一个 `while` 循环,该循环会在硬币总数不超过 50 且剩余需要兑换的钱数大于 0 的情况下继续执行。在循环中,我们首先判断剩余需要兑换的钱数是否大于等于 5 分,如果是,则将 5 分硬币数量加 1,并将剩余需要兑换的钱数减去 5 分。如果剩余需要兑换的钱数小于 5 分但大于等于 2 分,则将 2 分硬币数量加 1,并将剩余需要兑换的钱数减去 2 分。如果剩余需要兑换的钱数小于 2 分,则将 1 分硬币数量加 1,并将剩余需要兑换的钱数减去 1 分。最后,每当循环执行一次,我们就将硬币总数加 1。当循环结束后,我们输出实际使用的硬币数量和硬币总数。