Онлайн компилятор C

#include <stdio.h> int main() { int price,items,discount; float total_price,total_discount; scanf("%d%d%d",&price,&items,&discount); total_price=price*items; total_discount=total_price*discount/100; total_price=total_price-total_discount; printf("C=%.2f\n",total_price); return 0; }
这段代码的功能是:输入商品单价、数量和折扣百分比,计算折扣后的总价并输出。代码逻辑基本正确,但有一个潜在的类型转换问题。

- 在计算 `total_discount = total_price * discount / 100` 时,`discount` 是整数,`100` 也是整数,整数除法会截断小数部分,导致折扣计算不精确。例如,如果 `discount` 是 15,`total_price * 15 / 100` 会先做整数乘法再整数除法,丢失精度。

- 考虑将 `100` 改为 `100.0`,或者将 `discount` 转换为浮点数,确保整个表达式使用浮点除法。