使用C语言设计算法解决找零钱问题。 输入说明: 付钱数 商品价格 输出说明: 找钱数 输入示例: 100 37.83 输出示例: 100元:0 50元:1 10元:1 5元:0 2元:1 1元:0 1角:1 5分:1 1分:2
时间: 2024-03-23 19:39:16 浏览: 19
好的,以下是使用 C 语言实现的找零钱问题的代码:
```c
#include <stdio.h>
void change_money(float paid, float price) {
float denominations[] = {50, 20, 10, 5, 2, 1, 0.1, 0.05, 0.01};
float change = paid - price;
int count;
printf("找零钱数:\n");
for (int i = 0; i < 9; i++) {
count = (int)(change / denominations[i]);
if (count > 0) {
printf("%.2f元:%d ", denominations[i], count);
change -= denominations[i] * count;
}
}
}
int main() {
float paid, price;
printf("请输入付钱数和商品价格:\n");
scanf("%f%f", &paid, &price);
change_money(paid, price);
return 0;
}
```
在上述代码中,我们首先定义了一个面额数组 denominations,用于存储面额。然后通过 scanf 函数获取输入的付钱数和商品价格。接着遍历面额数组,对于每个面额,计算当前面额可以找几个,用 change / denominations[i] 得到商,表示当前面额需要找几张。如果找了一些当前面额的钞票,需要更新 change 的值,用 change -= denominations[i] * count 得到当前还需要找回的零钱数。最后输出每个面额的找钱数,格式为“面额:数量”,用 printf 函数实现。
需要注意的是,由于浮点数计算存在精度误差,因此在比较浮点数时需要使用一个极小的精度值进行比较,比如 0.00001。此外,由于 C 语言中没有内置的 round 函数,因此可以自己编写一个 round 函数来实现保留 n 位小数的功能。
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)