C语言怎么会这样呢求大神

#include"stdio.h"
int main()
{
float a[3][5],aver[3],zong=0; //aver存放各科目总分,zong存放总科目分数
int i,j;
for(i=0;i<5;i++)
{
printf("请输入第%d个同学成绩(语文,数学,英语)",i+1);
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
}
for(i=0;i<3;i++)
{
aver[i]=0;
for(j=0;j<5;j++)
aver[i]=aver[i]+a[j][i];
zong=zong+aver[i];
}
printf("语文,数学,英语平均分是:");
for(i=0;i<3;i++)
printf("%.2f\t",aver[i]/5);
printf("\n总平均分是: %.2f\n",zong/15);
return 0;

}
图片说明
如题怎么会这样呢??

你的循环有问题,首先你定义的数组是三行五列的a[3][5],但是你输入的时候成了a[5][3] 了,可能导致数组的内存溢出。

指针没有正确处理,下标越界

你这 上下a数组 写错了吧

第二个 for循环那里,你写的啊a[i][j],改成 【j】【i】。三行五列的