编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始。纸币的种类有十元、五元、一元,硬币的种类有五角、一角、贰分、壹分。
时间: 2023-04-10 11:04:56 浏览: 91
[附答案]计算出需要的各种面值的钱币的类型及数量
C知道:非常感谢您的提问。以下是我为您提供的代码:
```c
#include <stdio.h>
int main() {
double amount;
printf("请输入总金额:");
scanf("%lf", &amount);
int bills[3] = {10, 5, 1};
double coins[4] = {0.5, 0.1, 0.02, 0.01};
int bill_counts[3] = {0};
int coin_counts[4] = {0};
for (int i = 0; i < 3; i++) {
while (amount >= bills[i]) {
amount -= bills[i];
bill_counts[i]++;
}
}
for (int i = 0; i < 4; i++) {
while (amount >= coins[i]) {
amount -= coins[i];
coin_counts[i]++;
}
}
printf("最少纸币张数和硬币个数如下:\n");
for (int i = 0; i < 3; i++) {
printf("%d元纸币:%d张\n", bills[i], bill_counts[i]);
}
for (int i = 0; i < 4; i++) {
printf("%.2lf元硬币:%d个\n", coins[i], coin_counts[i]);
}
return 0;
}
```
请注意,这个程序只是一个简单的示例,可能存在一些局限性。如果您有更复杂的需求,可能需要进行更多的修改和优化。
阅读全文