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

#include <stdio.h> int main() { const int N = 5;int p=0; scanf("%d",&N); int arr[N]; fill_arr(arr,N); for (int i=1;i<N;i++){ p=p+i; } float s=p/N; printf("%.3f",s); }
这段代码试图计算数组元素的平均值,但存在几个关键问题。

- 第4行将 `N` 声明为 `const int`,但紧接着又用 `scanf` 尝试修改它,这会导致编译错误或未定义行为。`const` 变量不能被赋值。
- 代码中调用了 `fill_arr` 函数,但该函数并未定义,也没有包含必要的头文件或实现。
- 循环中累加的是索引 `i` 而不是数组元素的值,因此计算的是索引和而非数组元素和。
- 最后用整数除法 `p/N` 计算平均值,会丢失小数部分,虽然结果赋给了 `float`,但除法本身是整数除法。