鱼C论坛

 找回密码
 立即注册
查看: 1392|回复: 3

求助

[复制链接]
发表于 2023-12-12 16:26:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

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

使用道具 举报

发表于 2023-12-12 16:31:00 | 显示全部楼层
首先,我们可以使用一个二维数组来存储学生的成绩。数组的行表示学生,列表示科目。下面是一个简单的示例代码:
  1. #include <stdio.h>
  2. #define STUDENT_COUNT 10
  3. #define SUBJECT_COUNT 5
  4. int scores[STUDENT_COUNT][SUBJECT_COUNT];
  5. // 输入学生成绩
  6. void inputScores() {
  7.     printf("请输入学生成绩:\n");
  8.     for (int i = 0; i < STUDENT_COUNT; i++) {
  9.         printf("请输入第%d个学生的%d门课成绩:\n", i + 1, SUBJECT_COUNT);
  10.         for (int j = 0; j < SUBJECT_COUNT; j++) {
  11.             scanf("%d", &scores[i][j]);
  12.         }
  13.     }
  14. }
  15. // 计算每个学生的平均分
  16. void calcStudentAverage() {
  17.     for (int i = 0; i < STUDENT_COUNT; i++) {
  18.         int sum = 0;
  19.         for (int j = 0; j < SUBJECT_COUNT; j++) {
  20.             sum += scores[i][j];
  21.         }
  22.         printf("第%d个学生的平均分为:%f\n", i + 1, (float)sum / SUBJECT_COUNT);
  23.     }
  24. }
  25. // 计算每门课的平均分
  26. void calcSubjectAverage() {
  27.     for (int j = 0; j < SUBJECT_COUNT; j++) {
  28.         int sum = 0;
  29.         for (int i = 0; i < STUDENT_COUNT; i++) {
  30.             sum += scores[i][j];
  31.         }
  32.         printf("第%d门课的平均分为:%f\n", j + 1, (float)sum / STUDENT_COUNT);
  33.     }
  34. }
  35. // 找出最高分数所对应的学生和课程
  36. void findHighestScore() {
  37.     int maxScore = scores[0][0];
  38.     int maxStudent = 0;
  39.     int maxSubject = 0;
  40.     for (int i = 0; i < STUDENT_COUNT; i++) {
  41.         for (int j = 0; j < SUBJECT_COUNT; j++) {
  42.             if (scores[i][j] > maxScore) {
  43.                 maxScore = scores[i][j];
  44.                 maxStudent = i;
  45.                 maxSubject = j;
  46.             }
  47.         }
  48.     }
  49.     printf("最高分数为:%d,对应的学生为:%d,对应的课程为:%d\n", maxScore, maxStudent + 1, maxSubject + 1);
  50. }
  51. int main() {
  52.     inputScores();
  53.     calcStudentAverage();
  54.     calcSubjectAverage();
  55.     findHighestScore();
  56.     return 0;
  57. }
复制代码

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-13 16:55:14 | 显示全部楼层
我也刚学c,你这个题目,输入的话 是要输入学生的名字吗,还是只要输入他们的成绩就行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-12-18 10:13:47 | 显示全部楼层
-kasha 发表于 2023-12-13 16:55
我也刚学c,你这个题目,输入的话 是要输入学生的名字吗,还是只要输入他们的成绩就行

输成绩就行,不用名字
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-19 10:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表