n
n
n
n
n
一、对整型数组排序
Int main()
{
}
int cmp ( const void *a , const void *b )
{
int *c=(int *)a; //(int*)是强制类型转换
Int *d=(int *)b;
return *c-*d;
}
等同于return *(int *)a - *(int *)b;
二、对char类型数组排序(同int类型)
n
n
n
n
n
n
n
n
n
{
char *c=(char *)a; //(char*)是强制类型转换
n
n
n
n
等同于return *(char *)a - *(char *)b;
三、对double类型数组排序(同int类型)
n
n
n
n
n
n
int cmp ( const void *a , const void *b )
{
double *c,*d;
c=(double *)a;
d=(double *)b;
return *c>*d ? 1 : -1; //不是return *c-*d
}
等同于return *(double*)a > *(double *)b ? 1:-1;
四、对结构体数组一级排序
n
{
char name[10];
int score;
}stu[100];
n
n
struct student *c, *d;
n
n
n
n
n
五、对结构体数组二级排序
按照成绩的值从大到小排序,
成绩相同者按姓名从小到大排序
n
{
char name[10];
int score;
}stu[100];
n
n
struct student *c, *d;
n
n
n
n
n
n
n
n