题目

安全局搜索到了一批(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: 身份证排序相关推荐

  1. Java 算法 身份证排序

    目录标题 题目描述 解题思路 代码 题目描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生 ...

  2. 笔记1—身份证排序(截取字符串,比较大小)

    1.题目 身份证排序 Description 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生 ...

  3. python【蓝桥杯vip练习题库】ADV-172身份证排序

    试题 算法提高 身份证排序 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码 ...

  4. 【数据结构】排序相关题目及各种排序方法的总结

    [数据结构之排序] 常用的排序方法有:直接插入排序.希尔排序.冒泡排序.快速排序.简单选择排序.树形选择排序.堆排序.归并排序.基数排序 提示:如有不理解的知识点,请看B站最好的数据结构老师王卓老师的 ...

  5. 题目:身份证录入系统 一、语言和环境 a)实现语言Java, 使用Android开发环境实现《身份证录入系统》APP。具体要求如下: 打开应用后,显示效果如图-1所示:

    题目:身份证录入系统 (有需要指导的私信我) 一.语言和环境 a)实现语言 Java b)环境要求 JDK6以上.Eclipse.ADT 二.功能要求 使用Android开发环境实现<身份证录入 ...

  6. 2016年蓝桥杯C语言大学A组题目4--快速排序

    题目4.快速排序 排序在各种场合经常被用到. 快速排序是十分常用的高效率的算法. 其思想是:先选一个"标尺", 用它把整个队列过一遍筛子, 以保证:其左边的元素都不大于它,其右边的 ...

  7. Java_题目_身份证号码信息查看

    一.题目: 身份证信息查看:321281202201011234 ->打印: 人物信息为: 出生年月日:2022年01月01日 性别为:男 二.重难点: 1.2位:省份 3.4位:城市 5.6位 ...

  8. Java实现 蓝桥杯VIP 算法提高 身份证排序

    算法提高 身份证排序 时间限制:1.0s 内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身 ...

  9. 算法提高 身份证排序

    问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生日期为第7到第14位 输入格式 第一 ...

最新文章

  1. 转入肥胖基因改造RNA,作物增产50%
  2. 数据结构第八篇——链栈
  3. Unity5x编辑器的视图二
  4. 一位大牛的JAVA学习资料
  5. 智能个性化推荐_个性化推荐算法_新闻推荐系统_人工智能推荐平台|Giiso智搜...
  6. vue 公众号扫描_vue编写微信公众号打开相机功能
  7. Libusb开发教程三 USB设备程序开发
  8. Linux脚本验证的常见方法,linux shell常用循环与判断语句(for,while,until,if)使用方法...
  9. 实现粗糙表面_你了解什么是表面粗糙度吗?
  10. 什么是python全栈开发_什么是python全栈
  11. Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
  12. 序列化和反序列化(一)——概述
  13. 递归解决换零钱问题--代码实现
  14. UnityWebPlayer使用(2) 动态改变src
  15. FMX控件演示(FireMonkey ControlsDemo)
  16. 还不了解小程序?看这一篇文章就够了
  17. 【华为OD机试真题 JAVA】数字涂色
  18. 手机安全卫士------手机防盗页面之sim卡绑定读取联系人
  19. docker安装solr搜索引擎
  20. 计算机应用中双绞线细铜线几根,《计算机应用基础_在线作业_E100.doc

热门文章

  1. 老师们:不能用微信、QQ等方式布置作业了!
  2. 智能传感器照亮了手势识别的方向
  3. “我爱记单词”之用户规格需求说明
  4. Broker存储机制详解
  5. Spring Boot学习笔记(一)环境搭建
  6. jspm校园健康管理系统毕业设计(附源码、运行环境)
  7. 【多媒体课件制作软件】Focusky教程 | 编辑插入数理化公式
  8. matlab中循环load,[转载]Matlab利用load循环读入数据文件
  9. 讯飞新品翻译机上BOAO 只见追随搜狗不见创新
  10. matlab小猪程序,matlab描绘小猪佩奇为字符串