有没有朋友,求解C语言多维数组

问题遇到的现象和发生背景 六名学生两门课程,显示各门课程的总分及平均分,和各个学生的总分和平均分。
问题相关代码,请勿粘贴截图 #include

#define STUDENT 10
#define COURSE 10
int main()
{
int i,j;
int stu[STUDENT][COURSE]={0};
int sum1[STUDENT]={0};
int sum2[COURSE]={0};
//读取六名学生的两门课程成绩
for(i=0;i<6;i++){
printf("第%d名学生的成绩:\n",i+1);
for(j=0;j<2;j++){
printf("第%d门成绩:",j+1);
scanf("%d",&stu[i][j]);
}
}
//计算各个学生的总分和平均分
for(i=0;i<6;i++){
for(j=0;j<2;j++){
sum1[i]+=stu[i][j];
}
printf("第%d名学生的总分为:%d\n",i+1,sum1[i]);
printf("第%d名学生的平均分为:%f\n",i+1,(double)sum1[i]/2);
}
//计算两门课程的总分和平均分
for(j=0;j<2;j++){
for(i=0;i<6;i++){
sum2[j]+=stu[j][i];
}
printf("第%d门课程的总分为:%d\n",j+1,sum2[j]);
printf("第%d门课程的平均分为:%f\n",j+1,(double)sum2[j]/6);
}
return 0;
}

运行结果及报错内容 为什么计算不出来两门课程的总分和平均分啊

for(j=0;j<2;j++){
for(i=0;i<6;i++){
sum2[j]+=stu[j][i];
}
这里应该是stu[i][j],因为你交换了循环变量的顺序了。如果你stu的i和j再交换,等于没有交换啊

计算各个学生总分和平均分的循环是先循环i再循环j
计算两门课程总分和平均分先循环的j后循环的i
两边统一一下,下边这个stu[j][i]这个越界了


我从CSDN技能树中找了一些相关资料给你, 你可以看下: