在线编译器 C

#include <stdio.h> int main() { int a[5]; float sum=0; for(int i=0;i<5;i++){ scanf("%d",&a[i]); sum+=a[i]; } printf("%.3f",sum/5); return 0; }
这段代码的功能是:读取5个整数,计算它们的平均值,并保留三位小数输出。

- 代码中 `sum` 被声明为 `float` 类型,但累加的是 `int` 类型的数组元素,这会导致整数除法的问题吗?实际上 `sum/5` 中 `sum` 是 `float`,所以除法结果是浮点数,这里没有问题。

- 不过,如果希望平均值更精确,可以考虑在累加时使用浮点数运算。当前代码中 `sum+=a[i]` 将整数转换为浮点数再累加,这是可以的。但注意,如果输入的数字很大,`float` 的精度可能不够,可以考虑使用 `double` 类型。