首页 > 代码库 > C语言小练习三

C语言小练习三

题目要求:

定义一个二维数组保存 10个学生的5门课成绩,分别用函数实现:
(1)input():输入每个学生的成绩;
(2)output():输出每个学生的成绩;
(3)aver_stu():计算并输出每个学生的平均分;
(4)aver_cour():计算并输出每门课的平均分;
(5)highest():找出最高分数所对应的学生和课程。
程序运行时要求先在屏幕显示菜单,输入选择后分别调用对应的函数完成所选操作。

程序源码:

#include <stdio.h>

int array[10][5];

void input(void);
void output(void);
void aver_stu(void);
void aver_cour(void);
void highest(void);

int main(void)
{
    int n;
    
    input(); 

    printf("请输入您要执行的选项:\n\
            1.输出每个学生的成绩;\n            2.输出每个学生的平均分:\n            3.输出每门课程的平均分:\n            4.找出最高分数所对应的的学生和课程\n");

    scanf("%d", &n);

    switch(n)
    {
        case 1: output(); break;
        case 2: aver_stu(); break;
        case 3: aver_cour(); break;
        case 4: highest(); break;
    }                        

    return 0;
}

void input(void)
{
    int i, j;

    for(i = 0; i < 10; i++)
    {
        printf("请输入学生%d的成绩:", i + 1);

        for(j = 0; j < 5; j++)
        {
            scanf("%d", &array[i][j]);
        }
    }
}

void output(void)
{
    int i, j;

    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 5; j++)
        {
            printf("%d ", array[i][j]);
        }
        printf("\n");
    }
}

void aver_stu(void)
{
    int sum[10] = {
        0
    };
    double aver[10];
    int i, j;
    
    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 5; j++)
        {
            sum[i] += array[i][j];        
        }
        aver[i] = sum[i] / 5;
        printf("学生%d的平均分为:%lf\n", i, aver[i]);            
    }
}

void aver_cour(void)
{
    int i, j;
    int sum[5];
    double aver[5];
    
    for(j = 0; j < 5; j++)
    {
        for(i = 0; i < 10; i++)
        {
            sum[j] += array[i][j];            
        }
        aver[j] = sum[j] / 10;
        printf("课程%d的平均分为:%lf\n", j, aver[j]);
    }    
}

void highest(void)
{
    int i, j;
    int ii, jj;
    int max = array[0][0];

    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 5; j++)
        {
            if(max < array[i][j])
            {
                max = array[i][j];
                ii = i;
                jj = j;
            }
        }
    }    
    printf("学生%d的课程%d得分最高,最高分为%d\n", ii, jj, max);
}

 

C语言小练习三