在线编译器 C

#include<stdio.h> int main() { int arr[5]; int 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/5.000` 的结果是浮点数,但 `sum` 是整数,`5.000` 是浮点数,除法会得到浮点数,这是正确的。不过,`printf` 中使用了 `%.3f` 来输出浮点数,但 `sum/5.000` 这个表达式的结果类型是 `double`,没有问题。

- 检查一下变量 `sum` 的类型。`sum` 是 `int` 类型,而平均值通常可能是小数。虽然你用了 `5.000` 来强制浮点除法,但 `sum` 本身是整数,如果输入的数字之和很大,可能会超出 `int` 的范围。不过对于5个普通整数,这通常不是问题。