C语言qsort排序

来源:互联网 发布:邮箱服务器端口 编辑:程序博客网 时间:2024/05/16 18:29

先比较g,按从大到小排序;

如果一样,再比较s,按从大到小排序;

如果一样,再比较b,按从大到小排序;

如果一样,再比较name,按字典序排列。


注:
Comp(a,b)
return a-b 表示由小到大排序
return b-a 为由大到小排序。

return strcmp(a,b);表示按字典序排列(从小到大)
return strcmp(b,a);表示按倒字典序排列(从大到小)

typedef struct _node{char name[number];int g;int s;int b;}node;int Comp(const void *p1,const void *p2){node *d = (node *)p1;node *c = (node *)p2;if(c->g != d->g) {return c->g-d->g;}else if (c->g == d->g){if (c->s != d->s){return c->s-d->s;}else if (c->s == d->s){if (c->b != d->b){return c->b-d->b;}else if (c->b == d->b){return strcmp(d->name,c->name);}}}}node guojia[20];qsort(guojia,i,sizeof(guojia[0]),Comp);


0 0
原创粉丝点击