供参考代码:
#include
#include
typedef struct
{
int site1;
int guan2;
}paixu1;
int cmp(const void *a,const void *b);
int main()
{
paixu1 s[10];
int i;
for(i=0;i<10;i++)
{
s[i].site1=i*100;
s[i].guan2=i;
}
printf("结构体数组初始结构:\n");
for(i=0;i<10;i++)
{
printf("s[%d].site1=%d\ts[%d].guan2=%d\n",i,s[i].site1,i,s[i].guan2);
}
qsort(s,10,sizeof(s[0]),cmp);
printf("\n结构体数组按guan2降序排序后的结构:\n");
for(i=0;i<10;i++)
{
printf("s[%d].site1=%d\ts[%d].guan2=%d\n",i,s[i].site1,i,s[i].guan2);
}
return 0;
}
int cmp(const void *a,const void *b)
{
paixu1 c=*(paixu1 *)a;
paixu1 d=*(paixu1 *)b;
return d.guan2-c.guan2;//降序排,如果换成c.guan2-d.guan2就是升序排
}