题目 1568: 身份证排序
题目
安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。身份证号码为18位的数字组成,出生日期为第7到第14位
输入
第一行一个整数n,表示有n个身份证号码
余下的n行,每行一个身份证号码。
数据规模和约定
n< =100000
输出
按出生日期从大到小排序后的身份证号,每行一条
样例输入
5
466272307503271156
215856472207097978
234804580401078365
404475727700034980
710351408803093165
样例输出
404475727700034980
234804580401078365
215856472207097978
710351408803093165
466272307503271156
解题思路
本题是很基础的排序题目,按照题意利用qsort和符合要求的cmp即可解决。
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct ID{char whole[19];//身份证号码为18位的数字组成char date[9];
};int cmp(const void *a, const void *b){struct ID c = *(struct ID*)a;struct ID d = *(struct ID*)b;if (strcmp(c.date,d.date)!=0)return strcmp(d.date,c.date);//降序elsereturn strcmp(d.whole,c.whole);//则按身份证号码大小进行排序
}int main()
{int n,i,j;scanf("%d",&n);struct ID id[n];for (i=0;i<n;i++){scanf("%s",id[i].whole);for (j=6;j<14;j++)id[i].date[j-6] = id[i].whole[j];id[i].date[8] = '\0';}qsort(id,n,sizeof(id[0]),cmp);for (i=0;i<n;i++)printf("%s\n",id[i].whole);return 0;
}
题目 1568: 身份证排序相关推荐
- Java 算法 身份证排序
目录标题 题目描述 解题思路 代码 题目描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生 ...
- 笔记1—身份证排序(截取字符串,比较大小)
1.题目 身份证排序 Description 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生 ...
- python【蓝桥杯vip练习题库】ADV-172身份证排序
试题 算法提高 身份证排序 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码 ...
- 【数据结构】排序相关题目及各种排序方法的总结
[数据结构之排序] 常用的排序方法有:直接插入排序.希尔排序.冒泡排序.快速排序.简单选择排序.树形选择排序.堆排序.归并排序.基数排序 提示:如有不理解的知识点,请看B站最好的数据结构老师王卓老师的 ...
- 题目:身份证录入系统 一、语言和环境 a)实现语言Java, 使用Android开发环境实现《身份证录入系统》APP。具体要求如下: 打开应用后,显示效果如图-1所示:
题目:身份证录入系统 (有需要指导的私信我) 一.语言和环境 a)实现语言 Java b)环境要求 JDK6以上.Eclipse.ADT 二.功能要求 使用Android开发环境实现<身份证录入 ...
- 2016年蓝桥杯C语言大学A组题目4--快速排序
题目4.快速排序 排序在各种场合经常被用到. 快速排序是十分常用的高效率的算法. 其思想是:先选一个"标尺", 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的 ...
- Java_题目_身份证号码信息查看
一.题目: 身份证信息查看:321281202201011234 ->打印: 人物信息为: 出生年月日:2022年01月01日 性别为:男 二.重难点: 1.2位:省份 3.4位:城市 5.6位 ...
- Java实现 蓝桥杯VIP 算法提高 身份证排序
算法提高 身份证排序 时间限制:1.0s 内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身 ...
- 算法提高 身份证排序
问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生日期为第7到第14位 输入格式 第一 ...
最新文章
- 转入肥胖基因改造RNA,作物增产50%
- 数据结构第八篇——链栈
- Unity5x编辑器的视图二
- 一位大牛的JAVA学习资料
- 智能个性化推荐_个性化推荐算法_新闻推荐系统_人工智能推荐平台|Giiso智搜...
- vue 公众号扫描_vue编写微信公众号打开相机功能
- Libusb开发教程三 USB设备程序开发
- Linux脚本验证的常见方法,linux shell常用循环与判断语句(for,while,until,if)使用方法...
- 实现粗糙表面_你了解什么是表面粗糙度吗?
- 什么是python全栈开发_什么是python全栈
- Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
- 序列化和反序列化(一)——概述
- 递归解决换零钱问题--代码实现
- UnityWebPlayer使用(2) 动态改变src
- FMX控件演示(FireMonkey ControlsDemo)
- 还不了解小程序?看这一篇文章就够了
- 【华为OD机试真题 JAVA】数字涂色
- 手机安全卫士------手机防盗页面之sim卡绑定读取联系人
- docker安装solr搜索引擎
- 计算机应用中双绞线细铜线几根,《计算机应用基础_在线作业_E100.doc