彩笔凡 发表于 2023-12-12 16:26:52

求助


用c语言编写
2. 输入10个学生5门课的成绩,分别用函数实现下列功能
(1)计算每个学生的平均分;
(2)计算每门课的平均分;
(3)找出所有50个分数中的最高的分数所对应的学生和课程;
思路:因有多个学生的多个课程,在进行存放的时候可以采用多维数组;计算之前要先赋值,可自定义函数实现赋值。(1)要计算每名学生的平均分,按行计算,(2)计算每门课的平均分,按列计算,要考虑列应该在外层循环;(3)第三步可用选择法,依次比较,并记下学号和课程号。
注意因行号、列号、及数组会有多个函数使用,因此可使用全局数组、全局变量。

FishC 发表于 2023-12-12 16:31:00

首先,我们可以使用一个二维数组来存储学生的成绩。数组的行表示学生,列表示科目。下面是一个简单的示例代码:

#include <stdio.h>

#define STUDENT_COUNT 10
#define SUBJECT_COUNT 5

int scores;

// 输入学生成绩
void inputScores() {
    printf("请输入学生成绩:\n");
    for (int i = 0; i < STUDENT_COUNT; i++) {
      printf("请输入第%d个学生的%d门课成绩:\n", i + 1, SUBJECT_COUNT);
      for (int j = 0; j < SUBJECT_COUNT; j++) {
            scanf("%d", &scores);
      }
    }
}

// 计算每个学生的平均分
void calcStudentAverage() {
    for (int i = 0; i < STUDENT_COUNT; i++) {
      int sum = 0;
      for (int j = 0; j < SUBJECT_COUNT; j++) {
            sum += scores;
      }
      printf("第%d个学生的平均分为:%f\n", i + 1, (float)sum / SUBJECT_COUNT);
    }
}

// 计算每门课的平均分
void calcSubjectAverage() {
    for (int j = 0; j < SUBJECT_COUNT; j++) {
      int sum = 0;
      for (int i = 0; i < STUDENT_COUNT; i++) {
            sum += scores;
      }
      printf("第%d门课的平均分为:%f\n", j + 1, (float)sum / STUDENT_COUNT);
    }
}

// 找出最高分数所对应的学生和课程
void findHighestScore() {
    int maxScore = scores;
    int maxStudent = 0;
    int maxSubject = 0;

    for (int i = 0; i < STUDENT_COUNT; i++) {
      for (int j = 0; j < SUBJECT_COUNT; j++) {
            if (scores > maxScore) {
                maxScore = scores;
                maxStudent = i;
                maxSubject = j;
            }
      }
    }

    printf("最高分数为:%d,对应的学生为:%d,对应的课程为:%d\n", maxScore, maxStudent + 1, maxSubject + 1);
}

int main() {
    inputScores();
    calcStudentAverage();
    calcSubjectAverage();
    findHighestScore();

    return 0;
}

这个例子使用了全局的二维数组`scores`来存储学生成绩。在`inputScores`函数中,我们使用嵌套循环逐一输入学生的成绩。在`calcStudentAverage`函数中,我们按行计算每个学生的平均分,并输出结果。在`calcSubjectAverage`函数中,我们按列计算每门课的平均分,并输出结果。在`findHighestScore`函数中,我们使用选择法找到最高分数所对应的学生和课程,并输出结果。

希望这个示例代码能帮助你理解如何用C语言实现你的需求。如果还有其他问题,请随时提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

-kasha 发表于 2023-12-13 16:55:14

我也刚学c,你这个题目,输入的话 是要输入学生的名字吗,还是只要输入他们的成绩就行

彩笔凡 发表于 2023-12-18 10:13:47

-kasha 发表于 2023-12-13 16:55
我也刚学c,你这个题目,输入的话 是要输入学生的名字吗,还是只要输入他们的成绩就行

输成绩就行,不用名字
页: [1]
查看完整版本: 求助