C语言qsort排序

先比较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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值