m0_71562534 2022-10-24 20:05 采纳率: 100%
浏览 533
已结题

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

c语言
输入10个学生5门课的成绩,分别用函数求:
每个学生平均分;
每门课的平均分;
需要用框架的语句
#include <stdio.h>
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;
}

  • 写回答

3条回答 默认 最新

  • 北街风 2022-10-24 22:23
    关注
    #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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月26日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line