编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始。纸币的种类有十元、五元、一元,硬币的种类有五角、一角、贰分、壹分。
时间: 2023-04-10 18:04:55 浏览: 60
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, 0, 0};
int coin_counts[4] = {0, 0, 0, 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("%.2f元硬币:%d个\n", coins[i], coin_counts[i]);
}
return 0;
}
```
如果输入总金额为 123.45,程序的输出如下:
```
请输入总金额:123.45
最少纸币张数和硬币个数如下:
10元纸币:12张
5元纸币:0张
1元纸币:3张
0.50元硬币:0个
0.10元硬币:4个
0.02元硬币:2个
0.01元硬币:5个
```
以上就是 C知道 对于该问题的回答,希望能对您有所帮助。
阅读全文