改进下面这个代码:#include <stdio.h> int main() { float price1, price2, price3; float total, discount, payable; printf("请输入三种商品的价格:\n"); scanf("%f%f%f", &price1, &price2, &price3); total = price1 + price2 + price3; if (price1 > 50 || price2 > 50 || price3 > 50 || total > 100) { discount = 0.15; } else { discount = 0; } payable = total * (1 - discount); printf("您应付的钱数为:%.2f元\n", payable); return 0; }
时间: 2024-04-05 09:31:02 浏览: 25
可以改进的地方有:
1. 可以在用户输入价格前输出提示语句,让用户知道需要输入什么信息。
2. 可以在计算支付总额前对用户输入的价格进行合法性检查,如果有不合法的输入,可以提示用户重新输入。
3. 可以在输出支付总额前添加判断,如果总额为0,则提示用户没有购买任何商品。
改进后的代码如下:
#include <stdio.h>
int main() {
float price1 = 0, price2 = 0, price3 = 0;
float total, discount, payable;
// 提示用户输入商品价格
printf("请输入三种商品的价格,每个价格之间用空格隔开:\n");
// 循环读取并检查用户输入的价格
while (scanf("%f%f%f", &price1, &price2, &price3) != 3 || price1 < 0 || price2 < 0 || price3 < 0) {
printf("输入错误,请重新输入三种商品的价格,每个价格之间用空格隔开:\n");
fflush(stdin); // 清空输入缓冲区
}
total = price1 + price2 + price3;
// 判断是否享受折扣
if (total > 100 || price1 > 50 || price2 > 50 || price3 > 50) {
discount = 0.15;
} else {
discount = 0;
}
payable = total * (1 - discount);
// 判断是否购买了商品
if (total == 0) {
printf("您没有购买任何商品!\n");
} else {
printf("您应付的钱数为:%.2f元\n", payable);
}
return 0;
}