6-2 结构体数组排序-根据成绩高低将学生记录排序
时间: 2024-01-11 15:03:12 浏览: 243
以下是C语言实现结构体数组按照成绩高低排序的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct {
char name[20]; // 姓名
int score; // 成绩
} Student;
// 按照成绩从高到低排序
int compare(const void *a, const void *b) {
return ((Student *)b)->score - ((Student *)a)->score;
}
int main() {
Student students[5] = {
{"Tom", 80},
{"Jerry", 90},
{"Mike", 75},
{"Lisa", 95},
{"Bob", 85}
};
// 排序前的学生信息
printf("排序前的学生信息:\n");
for (int i = 0; i < 5; i++) {
printf("%s\t%d\n", students[i].name, students[i].score);
}
// 按照成绩从高到低排序
qsort(students, 5, sizeof(Student), compare);
// 排序后的学生信息
printf("\n按照成绩从高到低排序后的学生信息:\n");
for (int i = 0; i < 5; i++) {
printf("%s\t%d\n", students[i].name, students[i].score);
}
return 0;
}
```
输出结果:
```
排序前的学生信息:
Tom 80
Jerry 90
Mike 75
Lisa 95
Bob 85
按照成绩从高到低排序后的学生信息:
Lisa 95
Jerry 90
Bob 85
Tom 80
Mike 75
```
阅读全文