为什么这个学科平均分算不对呢
因为计算每科平均分时,那个总分SUM的初始化放在了计算3个学生同一科成绩的循环中,所以导致计算错误,把这个SUM的初始化提到这个循环之前即可,修改如下:
#include <stdio.h>
int main(void){
float stu[4][3]; //存储3个学生的四门功课的成绩
float av=0,sum=0;
float SUM =0 ,AV=0;
int u=0,i=0;
for(u=0;u<3;u++){ //遍历每一列,分别给3个学生存储成绩
sum=0;
av=0;
for(i=0;i<4;i++){ //遍历每一行,然后在同一列依次存储一个学生的四门成绩
printf("输入第%d个学生的第%d门成绩:",u+1,i+1);
scanf("%f",&stu[i][u]);
sum+=stu[i][u];
av=sum/4;
}
printf("第%d个学生的成绩总和是%.2f,平均分是%.2f\n",u+1,sum,av);
}
for(i=0;i<4;i++){ //遍历每一行,依次计算四门成绩的平均分
SUM=0; //每门功课的总分 ,每次计算前都置0
for(u=0;u<3;u++){ //每一行存储了同一门的成绩,共3个学生的成绩,累加其和,然后计算每门成绩的平均分
SUM+=stu[i][u];
AV=SUM/3;
}
printf("第%d门的成绩平均分是%.2f\n",i+1,AV);
}
return 0;
}