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

#include <stdio.h> int main() { int sum = 0; // 用于存储 12 个数字的总和 int num; // 用于暂存每次读入的数字 // 循环 12 次,读取 12 个整数 for (int i = 0; i < 12; i++) { if (scanf("%d", &num) == 1) { sum += num; // 把每一个读到的数字都加到总和里 } } // 计算平均数(注意:这里要把 sum 强行变成小数,否则除法会丢掉小数部分) float average = (float)sum / 12; // %.2f 表示输出一个保留 2 位小数的浮点数 printf("%.2f\n", average); return 0; }
这段代码的功能是:读取12个整数,计算它们的平均值,并保留两位小数输出。

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

- 当输入不足12个数字时,程序不会报错,而是直接计算已输入数字的平均值(仍除以12),这可能导致结果不准确。不过如果题目保证输入恰好12个数字,则没有问题。

- 变量 `average` 的类型是 `float`,而 `sum` 是 `int`,类型转换的写法 `(float)sum` 是正确的,但要注意 `float` 的精度有限,对于大整数求和可能产生微小误差。如果要求更高精度,可以考虑使用 `double`。