qsort()的使用
qsort () 功 能: 使用快速排序例程进行排序
用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));
#include <string.h> #include <stdlib.h> #include<stdio.h> int cmp_int(const void *a,const void *b) //对整形数组排序 (升序) 若想降序可以在返回值前加负号 { return *(int*)a > *(int *)b ? 1 : -1;
// return *(int *)a-*(int *)b; } int str_cmp(const void * str1,const void *str2) // 对一个字符数组排序 { return *(char *)str1-*(char *)str2; } int cmp_dou(const void *a,const void *b) //对double数组排序 { return *(double *)a > *(double *)b ? 1 : -1; } int main() { double arr[6]={123.1,23.3,31.0,54.2,53.2,2};int i; int arr_int[7] ={4,2,5,6,7,21,1}; qsort(arr,6,8,cmp_dou); qsort(arr_int,7,4,cmp); for(i=0;i<6;i++) { printf("%lf\t",arr[i]); } for(i=0;i<6;i++) { printf("%d\t",arr_int[i]); } return 0; }
qsort()地四个函数是自定义的函数排序方式,可以对一个结构体数组的某个成员大小按要求进行排序。