c语言怎么将结构体中的数据排序
时间: 2023-11-08 22:56:54 浏览: 408
C语言-对一个结构体中的字段进行排序
可以使用qsort()函数对结构体中的数据进行排序。首先,定义一个比较函数用于排列结构体数组,然后调用qsort()函数进行排序。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义结构体
struct student {
char name[30];
int score;
};
// 比较函数
int cmp(const void *a, const void *b) {
struct student *p1 = (struct student *)a;
struct student *p2 = (struct student *)b;
return p2->score - p1->score; // 按照分数从大到小排序
}
int main() {
int i;
struct student stu[5] = { {"张三", 90}, {"李四", 80}, {"王五", 70}, {"赵六", 60}, {"钱七", 50} };
// 排序前输出
printf("排序前:\n");
for (i = 0; i < 5; i++) {
printf("%s %d\n", stu[i].name, stu[i].score);
}
// 排序
qsort(stu, 5, sizeof(struct student), cmp);
// 排序后输出
printf("排序后:\n");
for (i = 0; i < 5; i++) {
printf("%s %d\n", stu[i].name, stu[i].score);
}
return 0;
}
```
阅读全文