课程平均成绩C语言二维数组,C语言二维数组例题疑惑

今天刷题,刷了个C语言经典例题,有一个地方始终项不明白,求大佬指点.

题:

bVbsPG5?w=425&h=251

答案是:

#include

#define M 5 //定义符号常量,学生人数为5

#define N 4 //定义符号常量,课程为4门

int main(void)

{int i,j;

float scoreM = {{78,85,83,65},{88,91,89,93},{72,65,54,75},{86,88,75,60},{69,60,50,72}};

float stu_ave[M] = {0}; //存放每位学生的平均成绩

float cla_ave[N] = {0}; //存放每门课程的平均成绩

for(i=0;i

for(j=0;j

stu_ave[i] += score[i][j];

//计算第i个学生N门课程的总成绩

cla_ave[j] += score[i][j];

//计算第j门课程的总成绩(**这里看不懂)**

}

stu_ave[i]/= N; //计算第i个学生的平均成绩

}

for(j=0;j

cla_ave[j]/=M; //计算第j门课的平均成绩

printf("学生编号 课程1 课程2 课程3 课程4 个人平均\n");

for(i=0;i

printf("Student%d\t",i+1); //输出学生编号

for(j=0;j

printf("%.1f",score[i][j]); //输出4门课总成绩

}

printf("%.1f\n",stu_ave[i]); //输出个人平均成绩

}

printf("\n课程平均");

for(j=0;j

printf("%.1f",cla_ave[j]); //输出每门课程的平均成绩

printf("\n");

return 0;

}

这段代码可以得出正确结果,可我不明白的是代码第14行的for循环中cla_ave[j] += score[i][j]; 为什么这个代码能得出第j门课程的总成绩? N不是4个吗?所以这个for循环应该循环4次才对阿,即4个成绩的和。可是学生一共是5个,第j门课程的总成绩应该是5个学生成绩的和(比如课程1,78+88+72+86+69)。这个代码是怎么得出每门课程的总成绩呢?总感觉内层少了1次循环,可是结果是正确的,想不通...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值