C语言qsort函数怎么用?
#include <iostream>
using namespace std;
typedef struct
{
unsigned long id;
int score;
}record;
int main()
{
int id_cmp(const void* s1,const void* s2);
int score_cmp(const void* s1,const void* s2);
record recordset[] = {{3,99},{5,87},{4,56},{2,100},{1,17}};
int recordcount = sizeof(recordset) / sizeof(record);
printf("排序前:\n");
for(int i = 0; i < recordcount;i++)
printf("%8d %8u %8d\n",i,recordset[i].id,recordset[i].score);
qsort(recordset,recordcount,sizeof(record),id_cmp);
printf("排序后:\n");
for(int i = 0; i < recordcount;i++)
printf("%8d %8u %8d\n",i,recordset[i].id,recordset[i].score);
qsort(recordset,recordcount,sizeof(record),score_cmp);
printf("排序后:\n");
for(int i = 0; i < recordcount;i++)
printf("%8d %8u %8d\n",i,recordset[i].id,recordset[i].score);
return 0;
}
int id_cmp(const void* s1,const void* s2)
{
record* p1 = (record* )s1;
record* p2 = (record* )s2;
if(p1->id < p2->id) return -1;
else if(p1->id == p2->id) return 0;
else return 1;
}
int score_cmp(const void* s1,const void* s2) //这个函数指针为什么能改变排序顺序
{
record* p1 = (record* )s1;
record* p2 = (record* )s2;
if(p1->score < p2->score) return -1;
else if(p1->score == p2->score) return 0;
else return 1;
}
...全文
相关推荐
C语言中qsort函数的用法实例详解
C语言中qsort函数的用法实例详解C语言中的qsort函数是标准库中提供的一种排序算法,主要用于对数组进行排序。
C语言中qsort函数用法实例小结
C语言中的`qsort`函数是用于对内存块中的元素进行排序的标准库函数,它包含在`<stdlib.h>`头文件中。
qsort函数具体介绍
qsort 函数详细介绍qsort 函数是 C 语言标准库中的一种排序算法,用于对数组进行排序。它是快速排序(Quicksort)算法的一种实现,能够高效地对数组进行排序。
C库函数qsort七种使用方法示例
C 库函数 qsort 七种使用方法示例本文将对 C 库函数 qsort 进行详细的介绍,并提供七种使用方法示例,帮助 C 语言初学者快速掌握 qsort 函数的使用方法。
qsort函数应用大全
qsort 函数应用大全qsort 函数是 C 语言中一个标准的排序函数,用于对数组进行排序。它可以根据不同的比较函数来对不同的数据类型进行排序。


