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

#include <stdio.h> int main() { int a,b,c; scanf("%d%d%d",a,b,c); float middle; middle=(a+b+c)/3; printf("%.2f\n",middle); return 0; }
这段代码试图读取三个整数并计算它们的平均值,然后输出保留两位小数的结果。但代码中存在一个关键问题。

- 在 scanf 函数中,变量 a、b、c 前面缺少取地址运算符 &,这会导致程序读取输入时出错,可能引发未定义行为。
- 计算平均值时,(a+b+c)/3 是整数除法,结果会被截断为整数,然后才赋值给 float 类型的 middle,导致小数部分丢失。