解题思路:
一看数量较大就毫不犹豫选择sort.
注意事项:
不要用二维数组,不好写sort的比较函数
参考代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
typedef long long ll;
const int N=1e5+5;
struct people
{ char num[25];
ll birthday;
}a[N];
bool cmp(people a,people b)
{ if(a.birthday!=b.birthday)return a.birthday>b.birthday;
return strcmp(a.num,b.num)>0;
}
main()
{ int i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{ scanf("%s",a[i].num);
a[i].birthday=0;
for(int j=6;j<14;j++)a[i].birthday+=a[i].birthday*10+(a[i].num)[j]-48;//用数字存生日
}
std::sort(a,a+n,cmp);
for(i=0;i<n;i++)printf("%s\n",a[i].num);
}
0.0分
5 人评分
【偶数求和】 (C语言代码)浏览:639 |
Hello, world! (C语言代码)浏览:714 |
A+B for Input-Output Practice (III) (C语言代码)浏览:564 |
链表数据求和操作 (C语言代码)浏览:941 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:756 |
【计算球体积】 (C语言代码)浏览:1548 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:589 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:506 |
简单的a+b (C语言代码)浏览:461 |
数字统计 (C语言代码)浏览:635 |