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

#include<stdio.h> int main() { int arr[5]; double sum=0; printf("input 5 numbers\n"); for(int i=0;i<=5;i++){ scanf("%d",&arr[i]); sum=sum+arr[i]; } printf("%.3f\n",sum/5.000); return 0; }
这段代码试图读取5个整数并计算它们的平均值,但存在一个数组越界的问题。

- 循环条件 `i<=5` 会导致循环执行6次,而数组 `arr` 只有5个元素(索引0到4)。当 `i=5` 时,访问 `arr[5]` 会越界,可能覆盖其他内存或导致未定义行为。
- 循环次数应改为 `i<5`,这样只读取5个数字,数组访问也在合法范围内。