原型void qsort(void *base,int nelem,unsigned int width,int (*fpCompare)(const void*,const void*));
比较函数是
int 函数名(const void * elem1,const void elem2);
1在2前 返回负数
1==2 返回0
1在2后 返回整数
#include <stdio.h>
#include <cstring>#include <stdlib.h>
#include <cmath>
#include <mem.h>
int MyCompare(const void *elem1,const void *elem2)
{
unsigned int *p1,*p2;
p1 = (unsigned int*)elem1;
p2 = (unsigned int*)elem2;
return (*p1%10)-(*p2%10);
}
#define NUM 5
int main()
{
unsigned int an[NUM] = {8,123,11,10,4};
qsort(an,NUM,sizeof(unsigned int),MyCompare);
for(int i=0;i<NUM;i++)
{
printf("%d ",an[i]);
}
return 0;
}