请问这个代码为什么输入10个数求平均值会出现这种情况

输入10个学生的成绩求平均值

img

img

#include<stdio.h>
int main()
{
    int i;
    float a[10],min,max,avg;
    printf("input 10 score:");
    for(i=0;i<=9;i++)
    {
        printf("input a score of student:");
        scanf("%f",&a[i]);
    }
    max=min=avg=a[0];
    for(i=1;i<=9;i++)
    {
        if(min>=a[i])
            min=a[i];
        if(max<a[i])
            max=a[i];
        avg=avg+a[i];
    }
    avg=avg/10;
    printf("max=%f\nmin=%f\navg=%f\n",max,min,avg);
    return 0;
}


数组大小错了,改为a[10]

数组长度为9,当下标为9就出错了,下标是从0开始代表第一个,8代表第九个,9代表第十个,数组长度申明为10

img

float a[9],意思是容量为9啊,也就是下标只有0,1,2,3,4,5,6,7,8。这样的话导致你avg没加上最后一个数
你应该float a[10]