解题思路:这种多个数找,直接结构体然后sort排序大小,比较快
注意事项: 年月日一样的话,要按身份证号大小排(题上没说容易忽略)
参考代码:
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=100010;
struct Date
{
long long shenfen = 0;
int nian = 0;
int yue = 0;
int ri = 0;
}date[maxn];
bool cmp(Date a, Date b)
{
if (a.nian != b.nian)return a.nian > b.nian;
else if (a.yue != b.yue)return a.yue > b.yue;
else if (a.ri != b.ri) return a.ri > b.ri;
else return a.shenfen > b.shenfen; //依次比较年月日大小,如果都一样则按身份证号大小依次排,题上没说容易忽略
}
int main()
{
long long a=0, b=0, c=1, d=8;
long long ci = 0;
scanf("%lld",&ci);
while (ci--)
{
scanf("%lld", &date[a].shenfen);
date[a].nian = date[a].shenfen % 1000000000000 / 100000000;
date[a].yue = date[a].shenfen % 100000000 / 1000000;
date[a].ri = date[a].shenfen % 1000000 / 10000;
a++;
}
sort(date,date+a,cmp);
for (int i = 0; i<a; i++)
{
printf("%lld\n", date[i].shenfen);
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复