Online Compiler C

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

代码逻辑基本正确,但有一个潜在问题需要注意:

- 变量 `sum` 被声明为 `float` 类型,但 `a[i]` 是 `int` 类型。在 `sum += a[i]` 时,整数会被自动转换为浮点数,所以计算本身没有问题。但更常见的做法是让 `sum` 为 `float` 或 `double`,这里没有问题。

- 主要需要检查的是:当输入的数字很多或很大时,`float` 的精度可能不够。如果希望更精确,可以考虑使用 `double` 类型。不过对于这个简单任务,`float` 通常也够用。

- 另外,代码没有检查 `scanf` 的返回值,如果输入不是整数,程序会出错。但作为基础练习,这不是必须的。

总体来看,这段代码功能正确,可以正常运行。