这个是C语言自带的快排算法,comp函数就是你要排序的方式
10年积累的网站设计、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有鄯善免费网站建设让你可以放心的选择与我们合作。
函数原型是 int comp(const void* a,const void *b);
大体的意思就是
如果你要从大到小排序,那就return *(int* a) - *(int* b)
如果你要从小到大排序,那就return *(int* b) - *(int* a)
当然可以更加灵活,比如按照结构体中的某一个成员的大小排序
return obj1-a obj2-a;
对于你这个,就是从大到小
int comp(const void *a,const void *b)
{
return *(int* b) - *(int* a);
}
代码如下:
#include stdio.h
int comp(int a, int b)
{
return (a b) ? a : b;
}
int main(void)
{
int a, b;
scanf("%d%d", a, b);
printf("%d\n", comp(a, b));
return 0;
}
第四个是回调函数的用法
由于qsort规定是int型函数,所以一定是int型,所以这点他不如c++的sort函数
const void *代表的是指针常量,即该指针只能指向a,不允许改变指向,保证了指针的安全性
(int *)a是强制将传进来的void 型指针转化为int型指针,*(int *)a的 * 是解析强制转化后int型指针a里面的int型数据,最后由return返回
就是先将变量a和b强制类型转换为int型指针,然后引用其中的值进行减法运算再降结果返回