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

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

- 代码中 `ave` 和 `sum` 被声明为 `float` 类型,但 `a[i]` 是 `int` 类型。在计算 `sum += a[i]` 时,整数会被自动转换为浮点数,所以目前没有语法错误。但需要注意,如果输入的数字很大,`float` 的精度可能不够,建议思考是否应该使用 `double` 类型来获得更精确的结果。

- 代码没有检查 `scanf` 的返回值,如果输入的不是整数,程序可能会产生未定义行为。可以思考如何增加输入验证。