您的位置:首页 > 其它

南阳oj 一种排序 题目8

2015-07-30 15:51 381 查看

#include<stdio.h>

#include<stdlib.h>

struct node

{

int b,l,k;

}s[1000];

int cmp(const void *a,const void *b)//结构体三级排序

{

struct node *c=(node *)a;

struct node *d=(node *)b;

if(c->b!=d->b) return c->b-d->b;

else

if(c->l!=d->l) return c->l-d->l;

else return c->k-d->k;

}

int main()

{

int n;

scanf("%d",&n);

while(n--)

{

int m,i,a,b;

scanf("%d",&m);

for(i=0;i<m;i++)

{

scanf("%d %d %d",&s[i].b,&a,&b);

s[i].l=a>b?a:b;//长取大的

s[i].k=a<b?a:b;//宽取小的

}

qsort(s,m,sizeof(s[0]),cmp);

printf("%d %d %d\n",s[0].b,s[0].l,s[0].k);

i=1;

while(i<m)

{

if(s[i].b!=s[i-1].b||s[i].l!=s[i-1].l||s[i].k!=s[i-1].k)

printf("%d %d %d\n",s[i].b,s[i].l,s[i].k);

i++;

}

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: