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

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

代码中有一个常见问题:整数除法会导致平均值被截断为整数,而不是保留小数部分。

- 在计算平均值时,`sum` 是 `int` 类型,`12` 也是整数,所以 `sum/12` 的结果是整数除法,小数部分会被丢弃。即使把结果赋给 `float` 类型的 `num`,小数部分已经丢失了。
- 要得到正确的小数结果,需要让除法运算至少有一个操作数是浮点数,例如将 `sum` 或 `12` 转换为 `float` 类型。