有一个班,3个学生,各学四门课,计算总平均成绩以及第n个学生的成绩。为什么下面的代码运行之后的平均成绩不对呢?


#include <stdio.h>
int main()
{
    void aver(float(*p)[4],int n);
    float score[3][4]={{65,67,70,60},{80,97,90,81},{90,99,100,98}};
    float (*p)[4]=score;
    int n;
    scanf("%d",&n);
    aver(score,n);
    return 0; 
}
void aver(float(*p)[4],int n)
{
    float sum=0,aver;
    int i,j;
    for(i=0;i<3;i++)
      for(j=0;j<4;j++)
        sum+=*(*(p+i)+j);
    aver=sum/12;
    printf("aver=%5.2f\n",aver);
    for(i=0;i<4;i++)
    printf("%f ",*(*(p+n)+i));
}

你的平均成绩正如你代码所写,是所有人的成绩的平均成绩。

所有人的平均成绩不是83.08吗?