8.4向函数传递二维数组

//计算每个学生、每门课程的总分和平均分
#include<stdio.h>
#define STUD_N 40
#define COURSE_N 30
void ReadScore(int score[][COURSE_N],int num[],int n)
{       //可以省略第一列,第二列不能省略
    int i,j;
    for(i=0;i<n;i++)
    {
        scanf("%ld",&num[i]);
        for(j=0;j<COURSE_N;j++)
        {
            scanf("%d",&score[i][j]);
        }
    }
}
void AverForStudent(int score[][COURSE_N],int sumS[STUD_N],averS[STUD_N],int n)
{
    int i,j;
    for(i=0;i<n;i++)
    {
        sumS[i]=0;
        for(j=0;j<COURSE_N;j++)
        {
            sumS[i]+=score[i][j];
        }
        averS[i]=sumS[i]/n;
    }
}
void AverForScore(int score[][COURSE_N],int sumC[COURSE_N],averC[COURSE_N],int n)
{
    int i,j;
    for(i=0;i<COURSE_N;i++)
    {
        sumC[i]=0;
        for(j=0;j<n;j++)
        {
            sumC[i]+=score[j][i];
        }
        averC[i]=sumC[i]/n;
    }
}
int main()
{
    int score[STUD_N][COURSE_N],sumS[STUD_N],sumC[COURSE_N],n;
    long num[STUD_N];
    float averS[STUD_N],averC[COURSE_N];
    scanf("%d",&n);
    ReadScore(score,num,n);  //址传递
    AverForStudent(score,sumS,averS,n);
    AverForScore(score,sumC,averC,n);
    return 0;
}
发布了34 篇原创文章 · 获赞 2 · 访问量 467

猜你喜欢

转载自blog.csdn.net/qq_42148307/article/details/104902757