#include <iostream>
using namespace std;
#include <cstdlib>
int compi(const void* p,const void *q)
{
int * i1=(int*)p;
int * i2=(int*)q;
if(*i1>*i2)
return 1;
else if(*i1<*i2)
return -1;
else
return 0;
}
int compc(const void *p,const void *q)
{
return *(char*)p-*(char*)q;
}
int main(int argc, char *argv[])
{
int ai[5]={3,4,2,5,6};
char ac[4]={'d','a','e','t'};
double ad[3]={6.3,3.3,4.4};
qsort(ai,5,4,compi);
qsort(ac,4,1,compc);
qsort(ad,3,8,compi);
for(int i=0;i<5;i++)
cout<<"****"<<ai[i];
cout<<endl;
for(int i=0;i<4;i++)
cout<<ac[i]<<' ';
cout<<endl;
for(int i=0;i<3;i++)
cout<<ad[i]<<' ';
cout<<endl;
}
标准库函数qsort()可以对任何类型的数组排序。其原型为, void qsort (void*, size_t, size_t,int (*)(const void*, const void*)); 其中,第一个参数为待排数组;第二个参数为数组元素个数;第三个参数为元素类型的长度;第四个参数是指针函数,比较两个参数,如果相等返回0;如果参数1大于参数2返回值为正;否则返回值为负。