先比较g,按从大到小排序;
如果一样,再比较s,按从大到小排序;
如果一样,再比较b,按从大到小排序;
如果一样,再比较name,按字典序排列。
注:
Comp(a,b)
return a-b 表示由小到大排序
return b-a 为由大到小排序。
return strcmp(a,b);表示按字典序排列(从小到大)
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);