编写一个C语言程序,用于水果店售货员结账。已知苹果每千克2.50元,鸭梨每千克1.80元.香蕉每千克2元,橘子每千克1.60元。要求输入各种水果的重量,输出应付金额。应付金额以元为单位,按四舍五入转成一个整数。再输入顾客付款数,输出应找的钱数。
时间: 2024-10-25 11:17:16 浏览: 44
在C语言中,你可以编写如下的简单程序来满足这个需求。这里我们将创建一个结构体表示水果和它们的价格,然后定义函数来计算总金额、找回零钱等。
```c
#include <stdio.h>
#include <math.h>
// 定义水果及其价格
typedef struct {
char fruit[10];
double price;
} Fruit;
// 计算总金额
double calculate_total(Fruit fruits[], int num_fruits, double payment) {
double total = 0.0;
for (int i = 0; i < num_fruits; i++) {
scanf("%lf", &fruits[i].weight);
total += fruits[i].price * fruits[i].weight;
}
return round(total - payment); // 四舍五入并计算找回的金额
}
int main() {
Fruit fruit[] = {{"苹果", 2.5}, {"鸭梨", 1.8}, {"香蕉", 2.0}, {"橘子", 1.6}};
int num_fruits = sizeof(fruit) / sizeof(fruit[0]);
double payment;
printf("请输入各种水果的重量(以千克为单位),例如:苹果 2.5 鸭梨 1.5 ... 结束输入以空格\n");
while (scanf("%s %lf", fruit[num_fruits - 1].fruit, &fruit[num_fruits - 1].weight) == 2) {
num_fruits++;
}
// 读取顾客付款
printf("请输入付款数:");
scanf("%lf", &payment);
double change = calculate_total(fruit, num_fruits, payment);
printf("应付金额为:%.0f 元\n", change >= 0 ? change : 0);
if (change >= 0) {
printf("应找回 %.0f 元\n", abs(change));
} else {
printf("无需找回零钱\n");
}
return 0;
}
```
在这个程序里,用户需要按照提示依次输入各水果的重量,直到输入结束为止。最后输入付款数,程序会计算总费用,并根据付款找回零钱。
阅读全文