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

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

代码整体逻辑正确,但有一个潜在的类型问题需要注意。

- 变量 `sum` 是 `double` 类型,但 `arr[i]` 是 `int` 类型。在 `sum=sum+arr[i]` 中,整数会自动转换为 `double` 参与运算,所以目前计算平均值的结果是正确的。
- 不过,如果你希望平均值更精确,或者未来处理更多数据,可以考虑在累加前将整数显式转换为浮点数,避免整数除法的陷阱。但当前代码中 `sum/5.000` 已经使用了浮点数除法,所以没有问题。