C语言输入一个整数,代表其手上持有的现金数,然后显示出如何转换成最少数目的零钱,钱币包括20元、10元、5元、1元
时间: 2024-10-16 15:17:50 浏览: 51
在C语言中,你可以通过以下步骤来解决这个问题:
1. 定义一个函数,比如`changeCurrency(int cash)`,接受一个整数类型的参数`cash`表示用户手中的现金。
2. 首先,初始化一些变量来保存每种面额的钱币张数,如`twenty`, `ten`, `five`, 和 `one`分别对应20元、10元、5元和1元。
3. 然后,开始遍历从最大到最小的面额(20元 > 10元 > 5元 > 1元),计算出当前面额能包含多少次,更新对应的变量,并从总现金中减去相应的金额。
4. 最后,当现金为0时,打印出每种面额的张数,展示如何组合成最少的零钱。
下面是一个简单的示例代码:
```c
#include <stdio.h>
void changeCurrency(int cash) {
int twenty = 0, ten = 0, five = 0, one = 0;
while (cash >= 20) {
cash -= 20;
twenty++;
}
while (cash >= 10) {
cash -= 10;
ten++;
}
while (cash >= 5) {
cash -= 5;
five++;
}
while (cash >= 1) {
cash -= 1;
one++;
}
printf("用法:\n");
if (twenty > 0) printf("%d 张20元\n", twenty);
if (ten > 0) printf("%d 张10元\n", ten);
if (five > 0) printf("%d 张5元\n", five);
if (one > 0) printf("%d 张1元\n", one);
}
int main() {
int userCash;
printf("请输入您的现金数:");
scanf("%d", &userCash);
changeCurrency(userCash);
return 0;
}
```
阅读全文