#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct stu
{
char name[20];
int age;
};
int int_cmp(const void* e1,const void* e2)
{
return *(int*)e1-*(int*)e2;
}
void test1()
{
int arr[]={9,8,7,6,5,4,3,2,1};
int i=0;
int len=sizeof(arr)/sizeof(arr[0]);
qsort(arr,len,sizeof(arr[0]),int_cmp);
for(i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
}
int float_cmp(const void* e1,const void* e2)
{
return (int)(*((float*)e1)-*((float*)e2));
}
void test2()
{
int i=0;
float Arr[]={9.0,8.0,7.0,6.0,5.0,4.0,3.0,2.0,1.0};
int len=sizeof(Arr)/sizeof(Arr[0]);
qsort(Arr,len,sizeof(Arr[0]),float_cmp);
for(i=0;i<len;i++)
{
printf("%lf ",Arr[i]);
}
}
int cmpByAge(const void* e1,const void* e2)
{
return ((struct stu*)e1)->age-((struct stu*)e2)->age;
}
int cmpByName(const void* e1,const void* e2)
{
return strcmp(((struct stu*)e1)->name,((struct stu*)e2)->name);
}
void test3()
{
int i;
struct stu s[3]={{"zhangshan",10},{"wangwu",30},{"lisi",20}};
int len=sizeof(s)/sizeof(s[0]);
//qsort(s,len,sizeof(s[0]),cmpByAge);
qsort(s,len,sizeof(s[0]),cmpByName);
}
int main()
{
test1();
putchar('\n');
test2();
putchar('\n');
test3();
}