解题思路:这种多个数找,直接结构体然后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分
13 人评分
三进制小数 (C语言代码)浏览:1017 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:1435 |
C语言考试练习题_保留字母 (C语言代码)浏览:561 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1099 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:562 |
简单的a+b (C语言代码)浏览:523 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:2090 |
1012题解浏览:859 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:872 |
整数平均值 (C语言代码)浏览:777 |