#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返回值为正;否则返回值为负。