C语言-qsort排序
通过qsort函数来自定义排序
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义结构体
struct Stu{
char stuName[20];
int age;
};
int main(){
struct Stu s[] = {{"wangwu", 20},{"zhangsan", 10}, {"lisi", 40}};
int size = sizeof(s) / sizeof(s[0]);
qsort(s, size, sizeof(s[0]), stuName_cmp);
//遍历结构体
for (int i = 0; i < size; i++){
printf("StuName:%s,StuAge:%d\n", s[i].stuName, s[i].age);
}
return 0;
}
//根据姓名升序排序
int stuName_cmp(const void * p1, const void * p2){
return strcmp(((struct Stu*)p1)->stuName, ((struct Stu*)p2)->stuName);
}
//根据年龄倒序排序
int stuAge_cmp(const void * p1, const void * p2){
return (*(int *)p2 - *(int *)p1);
}
本文来自博客园,作者:云辰,转载请注明原文链接:https://www.cnblogs.com/yunchen/p/18849566

浙公网安备 33010602011771号