#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]这个越界了