c语言 用框架写 输入10个学生5门课的成绩,分别用函数求

c语言
输入10个学生5门课的成绩,分别用函数求:
每个学生平均分;
每门课的平均分;
需要用框架的语句
#include
1. 在此给出函数声明
1).根据模块化设计的原则,将应用需求分成若干模块(函数);
2).确定应给函数传递什么数据?
3).函数处理后,需要返回什么数据给调用函数?
3).采用什么参数传递数据?
4).函数是否需要返回值?
//在此给出函数的声明(函数原型)
//思考:数组名作为函数参数时,为何需要传递一个数组中可用的元素个数参数(此处为:nTOTAL_ROWS)
float RowAverage(float score[][5], int nTOTAL_ROWS, int nRow);
float ColAverage(float score[][5], int nTOTAL_ROWS, int nCol);

int main()
{

    2. 确定应用中需要的变量
float score[10][5];
int nRow = 0, nCol = 0; //拟求均值的学生及课程
float rowAverage = 0.0, colAverage = 0.0;//求得的均值
int nStudentNums = 2; //在调试时,可先测试2个学生5门课/*

    3. 完成数组的输入
        1).如何实现二维数组的输入;
        2).如何在程序中先进行少量数据的测试,待程序基本完善后再进行
           大数据量的测试
//在此给出输入及输入数据验证的语句

4. 调用数据处理函数;
        1) 现实中的需要求可能是什么?
        2)一次求所有学生的成绩均值?
        3)一次求所有课程的均值?
        4)求用户指定内从的均值?

    5. 输出计算结果
//在此给出输出语句

//在此给出具体的数据处理
//此处的函数调用及输出应根据用户的需求来确定
//现在假设是要求所有学生及所有课程的成绩均值
//3)、(4)的代码应为如下形式:

printf("计算所有学生的成绩均值:\n");
for (int i = 0; i < nStudentNums; i++) {
    float average = RowAverage(score, nStudentNums, i);
    //此处格式:打印1位小数,另外下面语句中的i+1 有何好处?
    printf("第 %d 个学生的成绩均值为:%.1f\n", i + 1, average);
}

printf("计算所有课程的成绩均值:\n");
//各位同学可以模仿上面的代码,自己来完成


return 0;

}
//在源程序中的任意位置给出函数定义

float RowAverage(float score[][5], int nTOTAL_ROWS, int nRow) {
float rowAverage = 0.0;
//自行给出具体实现
return rowAverage;
}
float ColAverage(float score[][5], int nTOTAL_ROWS, int nCol) {
float colAverage = 0.0;
//自行给出具体实现
return colAverage;
}

#include <stdio.h>
#include<math.h>

float RowAverage(float score[][5], int nTOTAL_ROWS, int nRow);  //个人成绩平均分
float ColAverage(float score[][5], int nTOTAL_ROWS, int nCol); //某课程成绩平均分
int main()
{
//2. 确定应用中需要的变量
    float score[10][5];
    int nRow = 0, nCol = 0; //拟求均值的学生及课程
    float rowAverage = 0.0, colAverage = 0.0;//求得的均值
    int nStudentNums = 2; //在调试时,可先测试2个学生5门课/*
    int i, j;
    for(i=0; i<10; i++)
    {
        printf("第%d个同学的成绩(空格分开):",i+1);
        for(j=0; j<5; j++)
        {
            //输入学生成绩
            scanf("%f",&score[i][j]);

        }
    }//**输入时数字之间用空格分隔**
    printf("\n");


    printf("计算所有学生的成绩均值:\n");
    for (int i = 0; i < 10; i++)
    {
        float average1 = RowAverage(score, 10, i);
        //此处格式:打印1位小数,另外下面语句中的i+1 有何好处?
        //因为数组中下标以0开始,要想表示第一名则下标是为0的数据,则i+1才表示正确

        printf("第 %d 个学生的成绩均值为:%.2f\n", i + 1, average1);
    }
      printf("\n");


    printf("计算所有课程的成绩均值:\n" );
      for (int i = 0; i < 10; i++)
    {
        float average2 = ColAverage(score, 10, i);
        //此处格式:打印1位小数,另外下面语句中的i+1 有何好处?
        //因为数组中下标以0开始,要想表示第一名则下标是为0的数据,则i+1才表示正确

        printf("第%d门课的平均分分别为%0.2f\n", i + 1,average2);
    }


    return 0;
}

float RowAverage(float score[][5], int nTOTAL_ROWS, int nRow)
{
    float rowAverage = 0.0;
    float sum = 0.0;
    for(int i=0; i<5; i++)
        sum += score[nRow][i];
    rowAverage = sum/5;
    return rowAverage;

}


float ColAverage(float score[][5], int nTOTAL_ROWS, int nCol)
{
    float colAverage = 0.0;
    float sum = 0.0;
    for(int i=0; i<nTOTAL_ROWS; i++)
        sum += score[i][nCol];
    colAverage = sum/nTOTAL_ROWS;
    return colAverage;
}

img

只需要补充这两个函数?

float RowAverage(float score[][5], int nTOTAL_ROWS, int nRow) {
float rowAverage = 0.0;
float sum = 0;
for(int i=0;i<5;i++)
    sum += score[nRow][i];
rowAverage = sum/5;
return rowAverage;
}
float ColAverage(float score[][5], int nTOTAL_ROWS, int nCol) {
float colAverage = 0.0;
float sum = 0;
for(int i=0;i<nTOTAL_ROWS;i++)
    sum += score[i][nCol];
colAverage = sum/nTOTAL_ROWS;
return colAverage;
}