c语言求班级上每个人的最高成绩
时间: 2024-11-30 10:14:47 浏览: 11
在C语言中,如果你需要求解一个班级每个学生的最高成绩,你可以创建一个结构体来存储学生的信息,包括姓名和成绩,然后遍历这个结构体数组来找到每个学生的最高分。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[50];
int score;
} Student;
// 比较函数,用于查找最高分
int compare_scores(const void *a, const void *b) {
return (*(const Student *)a).score - (*(const Student *)b).score;
}
void find_highest_score(Student students[], int num_students) {
// 首先假设第一个学生的分数就是最高的
Student max_student = students[0];
// 使用qsort对数组按照成绩降序排序
qsort(students, num_students, sizeof(Student), compare_scores);
printf("最高成绩和对应的学员信息:\n");
for (int i = 0; i < num_students; ++i) {
if (max_student.score == students[i].score) { // 如果当前学生的分数等于已知最高分
printf("%s: %d\n", students[i].name, students[i].score);
} else {
// 更新最高分记录
max_student = students[i];
printf("%s: (新高分) %d\n", max_student.name, max_student.score);
}
}
}
int main() {
Student class[] = {
{"张三", 95},
{"李四", 88},
{"王五", 100},
{"赵六", 92}
};
int num_students = sizeof(class) / sizeof(class[0]);
find_highest_score(class, num_students);
return 0;
}
```
阅读全文