鱼C论坛

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

求助

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

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

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

x

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

使用道具 举报

发表于 2023-12-12 16:31:00 | 显示全部楼层
首先,我们可以使用一个二维数组来存储学生的成绩。数组的行表示学生,列表示科目。下面是一个简单的示例代码:
#include <stdio.h>#define STUDENT_COUNT 10#define SUBJECT_COUNT 5int scores[STUDENT_COUNT][SUBJECT_COUNT];// 输入学生成绩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[i][j]);        }    }}// 计算每个学生的平均分void calcStudentAverage() {    for (int i = 0; i < STUDENT_COUNT; i++) {        int sum = 0;        for (int j = 0; j < SUBJECT_COUNT; j++) {            sum += scores[i][j];        }        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[i][j];        }        printf("第%d门课的平均分为:%f\n", j + 1, (float)sum / STUDENT_COUNT);    }}// 找出最高分数所对应的学生和课程void findHighestScore() {    int maxScore = scores[0][0];    int maxStudent = 0;    int maxSubject = 0;    for (int i = 0; i < STUDENT_COUNT; i++) {        for (int j = 0; j < SUBJECT_COUNT; j++) {            if (scores[i][j] > maxScore) {                maxScore = scores[i][j];                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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-12-13 16:55:14 | 显示全部楼层
我也刚学c,你这个题目,输入的话 是要输入学生的名字吗,还是只要输入他们的成绩就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

输成绩就行,不用名字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 12:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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