在线编译器 C

#include <stdio.h> int main() { int a, b, c; float d; scanf("%d%d%d",&a,&b,&c); double average=(a+b+c)/3; printf("%.2f\n",average); return 0; }
这段代码的功能是读取三个整数,计算它们的平均值并保留两位小数输出。但实际运行结果可能不符合预期。

- 问题在于 `(a+b+c)/3` 是整数除法,会直接截断小数部分,导致平均值不准确。即使赋值给 `double` 类型的变量,整数除法已经先执行了。
- 需要将其中一个操作数转换为浮点数,例如 `(a+b+c)/3.0`,这样除法就会按照浮点数规则计算。