c语言结构体数组怎么排序

avatar
作者
筋斗云
阅读量:0

在C语言中,可以使用标准库函数qsort对结构体数组进行排序。下面是一个示例代码:

#include <stdio.h> #include <stdlib.h> #include <string.h>  // 定义一个结构体 struct Person {     char name[20];     int age; };  // 比较函数,用于指定排序规则 int compare(const void *a, const void *b) {     // 将void指针转换为结构体指针     const struct Person *personA = (const struct Person *)a;     const struct Person *personB = (const struct Person *)b;          // 按照年龄升序排列     if (personA->age < personB->age) {         return -1;     } else if (personA->age > personB->age) {         return 1;     } else {         return 0;     } }  int main() {     struct Person people[] = {         {"Alice", 25},         {"Bob", 20},         {"Charlie", 30}     };          int numPeople = sizeof(people) / sizeof(people[0]);          // 使用qsort函数对结构体数组进行排序     qsort(people, numPeople, sizeof(struct Person), compare);          // 输出排序后的结果     for (int i = 0; i < numPeople; i++) {         printf("Name: %s, Age: %d\n", people[i].name, people[i].age);     }          return 0; } 

以上代码使用qsort函数对people数组进行排序,根据年龄的大小进行升序排列。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!