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

#include <stdio.h> int main() { int price, items; float total_price, total, discount; scanf("%d%d%d", &price, &items, &discount); total_price=price*items; total=total_price/((100-discount)/100) printf("C=%.2f ",total); return 0; }
这段代码试图计算商品总价并应用折扣,但存在几个问题。

- 代码中 `scanf` 的格式字符串 `"%d%d%d"` 要求输入三个整数,但 `discount` 被声明为 `float` 类型,这会导致输入错误。
- 计算折扣的表达式 `(100-discount)/100` 中,由于 `100` 和 `discount` 都是整数,结果会被截断为整数(例如 `(100-20)/100` 得到 `0`),导致折扣计算失效。
- 最后一行 `printf` 末尾多了一个空格,但这不是主要问题。

- 检查 `scanf` 中 `discount` 的格式说明符是否与它的类型匹配。
- 思考如何让除法运算得到小数结果,而不是整数截断。