qsort 三级排序

nyoj                 一种排序

描述
现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);

1.按照编号从小到大排序

2.对于编号相等的长方形,按照长方形的长排序;

3.如果编号和长都相同,按照长方形的宽排序;

4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指定格式显示所有的长方形;
输入
第一行有一个整数 0<n<10000,表示接下来有n组测试数据;
每一组第一行有一个整数 0<m<1000,表示有m个长方形;
接下来的m行,每一行有三个数 ,第一个数表示长方形的编号,

第二个和第三个数值大的表示长,数值小的表示宽,相等
说明这是一个正方形(数据约定长宽与编号都小于10000);
输出
顺序输出每组数据的所有符合条件的长方形的 编号 长 宽
样例输入
1
8
1 1 1
1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
2 1 2
2 2 1
样例输出
1 1 1
1 2 1
1 2 2
2 1 1
2 2 1
来源
经典题目
上传者
iphxer

cpp:

#include<stdio.h>
#include<stdlib.h>
#define MAX 1000
#define swap(a,b) {t=a;a=b;b=t;}
int t;
struct node
{int no;int l;int w;
};
node a[MAX];
int cmp(const void *a,const void *b)
{struct node *c=(node *)a;struct node *d=(node *)b;if(c->no==d->no){if(c->l==d->l){return c->w-d->w;}else return c->l-d->l;}else return c->no-d->no;
}
int main()
{int T;scanf("%d",&T);while(T--){int m,i;scanf("%d",&m);for(i=0;i<m;i++){scanf("%d%d%d",&a[i].no,&a[i].l,&a[i].w);if(a[i].l<a[i].w) swap(a[i].l,a[i].w);}qsort(a,m,sizeof(node),cmp);for(i=0;i<m-1;i++){if(a[i].no==a[i+1].no&&a[i].l==a[i+1].l&&a[i].w==a[i+1].w)continue;printf("%d %d %d\n",a[i].no,a[i].l,a[i].w);}printf("%d %d %d\n",a[m-1].no,a[m-1].l,a[1].w);}return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梦中女孩,不知还能不能再见你一面

我将于茫茫人海之中&#xff0c;访我惟一灵魂伴侣&#xff0c;得之我幸&#xff0c;失之我命&#xff0c;如是而已.那天,第一次见到你,没有陌生的感觉,很熟悉很熟悉.那天,你走了,留给我的仅有一个浅浅的微笑.那天,没有机会和你告别,没有机会和你说声再会.那天,再一次见到你,我们…

40张动图揭示各种传感器工作原理!

应变加速度感应器▼称重式料位计▼电子皮带秤重示意图▼电子吊车秤▼荷重传感器用于测量汽车衡的原理▼荷重传感器的应用▼TiO2氧浓度传感器结构及测量电路▼布料张力测量及控制原理▼直滑式电位器控制气缸活塞行程▼电位器式传感器▼陶瓷湿度传感器▼多孔性氧化铝湿敏电容原理…

lpad与rpad

--lpad(str, n, [pad_str])--rpad(str, n, [pad_str])-- 如果n<length(str),则显示substr(str,1,n)-- 否则&#xff0c;分别从左边和右边使用pad_str进行填充-- 其中n表示最后输出结果字符串的长度-- 如果pad_str为空&#xff0c;则用空格来填充select lpad(abc,2,#) from d…

利用qsort二级排序

qsort int comp(const void *a,const void *b) { struct node*c(node*)a; struct node*d(node*)b; if(c->x!d->x) return c->x-d->x; else return c->y-d->y; } qsort(s,m,sizeof(s[0]),comp); qsort的二级排序完整代码&#xff1a; #include<stdio.…

git log 你学废了吗?

# 前言Git 是一个工具&#xff0c;用来管理代码的东西&#xff0c;要是Git 使用不好&#xff0c;确实还是挺尴尬的&#xff0c;我今晚看了个文章&#xff0c;发现Git log 是的玄机都还很多。比如这样的# git log --help如果觉得git 还不会用&#xff0c;可以看看git log --help…

部署WSE3.0实战:性能、证书与WSE910错误

早些时候看WSE3.0附带sample code&#xff0c;似乎挺简单&#xff0c;根据项目情况&#xff0c;选择UsernameForCertificate断言&#xff0c;使用测试服务证书在本机上&#xff08;winxp SP2&#xff09;执行很顺利&#xff0c;可以将Web service 部署到服务器上就得到“WSE 91…

cors

起因 有同学在nginx站点配置中加了一行Access-Control-Allow-Origin *,导致微信中业务数据异常&#xff0c;抓包看http头有两个Access-Control-Allow-Origin字段&#xff0c;一个是站点自己的域名&#xff0c;一个是*。 为了实现跨域资源访问&#xff0c;在代码和nginx配置中都…

qsort与sort

sort()函数是C中的排序函数其头文件为&#xff1a;#include<algorithm>头文件&#xff1b; qsort()是C中的排序函数&#xff0c;其头文件为&#xff1a;#include<stdlib.h> sort是不需要自己写compare的&#xff0c;sort默认是升序排列&#xff0c;如果想要降序就…

别错过校招

我不是很想讨论这个问题&#xff0c;也没有想过我现在要用这个话题做文章的标题&#xff0c;这篇文是提醒准备毕业的同学们&#xff0c;校招非常重要。今天晚上&#xff0c;一个微信好友问「发哥&#xff0c;我现在研究生毕业&#xff0c;但是自己的基础非常不好&#xff0c;也…

spring集成 log4j + slf4j

以maven web项目为例&#xff0c; 首先、在pom文件引入相关依赖&#xff0c;如下&#xff08;spring官网文档有介绍&#xff09;&#xff1a; <dependencies><!-- spring 相关 --><dependency><groupId>org.springframework</groupId><artifa…

喜讯,Asp.net Ajax 文档提供下载

今天去了一下 Asp.net Ajax 的官方网站&#xff0c;准备挑战自己的耐心去映着头皮跨过那所谓的修好的电缆去读 Asp.net Ajax 的文档。发现一个喜讯&#xff0c;不知道到什么时候&#xff0c;Asp.net Ajax 的文档提供下载了。我下载了一个&#xff0c;包括文档,代码和示例数据库…

大数阶乘

描述我们都知道如何计算一个数的阶乘&#xff0c;可是&#xff0c;如果这个数很大呢&#xff0c;我们该如何去计算它并输出它&#xff1f; 输入输入一个整数m(0<m<5000)输出输出m的阶乘&#xff0c;并在输出结束之后输入一个换行符样例输入50 样例输出304140932017133780…

90后中国程序员“黑吃黑”博彩网站,半年获利256万,判刑11年半

一个90后程序员&#xff0c;在短短两年的时间里&#xff0c;非法控制67万台计算机&#xff0c;还利用漏洞“黑吃黑”博彩网站&#xff0c;半年从中获利256万余元……近期&#xff0c;浙江省杭州市西湖区人民法院对这起黑客大案进行了一审宣判。法院以诈骗罪、非法控制计算机信息…

成功数据恢复一例LINUX EXT3 下误删除ORACLE数据库

[申明]转载请保留原作网站&#xff1a;[url]http://www.sjhf.net[/url] 关键字[LINUX误删除数据恢复][摘要]国家认证认可监督管理委员会&#xff0c;用于正常工作的一个重要ORACLE数据库&#xff0c;存储于LINUX EXT3文件系统之上。一次&#xff0c;管理员在建立测试库时选错了…

nyoj744 蚂蚁的难题(-)

蚂蚁的难题(一) 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;2描述小蚂蚁童鞋最近迷上了位运算&#xff0c;他感觉位运算非常神奇。不过他最近遇到了一个难题&#xff1a; 给定一个区间[a,b],在区间里寻找两个数x和y&#xff0c;使得x异或y最…

用一张图片告诉你芯片设计

#推荐阅读专辑|Linux文章汇总专辑|程序人生专辑|C语言嵌入式Linux微信扫描二维码&#xff0c;关注我的公众号

XML轻松学习手册(1)XML快速入门

前言转载于:https://blog.51cto.com/yinpeng/17218

【学习总结】Markdown 使用的正确姿势

参考资料&#xff1a; Learning-Markdown 入门参考 注&#xff1a;原博可能对GitHub中的Markdown格式更适用。ps&#xff1a;在王熊猫的GitHub里也有相关格式的攻略&#xff0c;可一并参考学习。关于表情的cheatsheet ? &#xff08;似乎不太好&#xff0c;哈哈&#xff09;1、…

MTK 平台TP调试遇坑

#前言最近在调试我们项目上的TP驱动&#xff0c;奈何一直不能使用&#xff0c;而且这个项目的硬件确定是没有问题的「这个是前提」&#xff0c;我们在软件上提升了SDK基线&#xff0c;在之前的基线版本上软件是没有问题的。然后我就赶紧检查了两个方面确定TP的供电是不是正常的…

阿里巴巴装袋问题

【任务描述】 阿里巴巴进入四十大盗的宝库后&#xff0c;发现里面宝物众多&#xff0c;并且每种宝物都有体积和价值的标注&#xff0c;如何尽可能地多装宝物&#xff0c;是宝物的价值最大&#xff0c;但不能超过口袋容量。&#xff08;口袋体积是150&#xff09; 宝物 A B …