定义一个名为max的函数,函数可以求出人数不同的班级学生的某门功课的成绩最高分,并记录最高分学生的学号。c 语言程序
时间: 2024-03-09 14:50:21 浏览: 119
C语言程序设计-统计出若干个学生的平均成绩,最高分以及得最高分的人数;
5星 · 资源好评率100%
好的,以下是 C 语言程序实现:
```c
#include <stdio.h>
#define MAX_CLASS 10 // 最多有 10 个班级
#define MAX_STUDENT 50 // 每个班级最多有 50 名学生
// 定义学生结构体
struct Student {
int id; // 学号
int score; // 成绩
};
// 定义班级结构体
struct Class {
int num_student; // 学生人数
struct Student students[MAX_STUDENT]; // 学生数组
int max_score; // 最高分
int max_score_student_id; // 最高分学生的学号
};
// 定义函数 max,返回值为最高分
int max(struct Class classes[], int num_class) {
int max_score = 0;
for (int i = 0; i < num_class; i++) {
// 遍历每个班级
for (int j = 0; j < classes[i].num_student; j++) {
// 遍历每个学生
if (classes[i].students[j].score > max_score) {
// 如果当前学生的分数比最高分高,更新最高分和最高分学生的学号
max_score = classes[i].students[j].score;
classes[i].max_score = max_score;
classes[i].max_score_student_id = classes[i].students[j].id;
}
}
}
return max_score;
}
int main() {
struct Class classes[MAX_CLASS]; // 班级数组
int num_class; // 班级数
int num_student; // 学生数
// 输入班级数
printf("请输入班级数:");
scanf("%d", &num_class);
// 输入每个班级的学生数和成绩,并记录最高分和最高分学生的学号
for (int i = 0; i < num_class; i++) {
printf("请输入第 %d 个班级的学生数:", i + 1);
scanf("%d", &num_student);
classes[i].num_student = num_student;
for (int j = 0; j < num_student; j++) {
printf("请输入第 %d 个学生的学号和成绩:", j + 1);
scanf("%d%d", &classes[i].students[j].id, &classes[i].students[j].score);
}
max(classes, num_class); // 求出最高分和最高分学生的学号
}
// 输出每个班级的最高分和最高分学生的学号
for (int i = 0; i < num_class; i++) {
printf("第 %d 个班级的最高分为 %d,最高分学生的学号为 %d\n", i + 1, classes[i].max_score, classes[i].max_score_student_id);
}
return 0;
}
```
上面的程序实现了一个名为 `max` 的函数,函数可以求出人数不同的班级学生的某门功课的成绩最高分,并记录最高分学生的学号。同时,程序还可以通过输入班级数、每个班级的学生数和成绩,输出每个班级的最高分和最高分学生的学号。
阅读全文