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

#include <stdio.h> int main() { float X,a,b,c; scanf("%d%d%d",&a,&b,&c); X=(a+b+c)/3; printf("%.2f",X); return 0; }
这段代码试图计算三个数的平均值并保留两位小数输出。但存在一个关键问题:变量 `a`, `b`, `c` 被声明为 `float` 类型,而 `scanf` 中却使用了 `%d` 格式符,这会导致输入数据无法正确存储。

- `scanf` 的格式符必须与变量类型匹配。`%d` 用于读取整数,而 `a`, `b`, `c` 是 `float` 类型,应使用 `%f`。
- 另外,注意 `X` 的计算结果可能因整数除法而丢失小数部分,但这里由于 `a`, `b`, `c` 是 `float`,除法会自动保留小数,所以这部分没有问题。