解题思路:
一看数量较大就毫不犹豫选择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语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:525 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1152 |
不知道哪里错了浏览:1226 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:549 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:577 |
简单的a+b (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:724 |
C二级辅导-进制转换 (C语言代码)浏览:750 |
找出最长的字符串来 (C语言代码)浏览:1840 |
数列有序 (C语言代码)浏览:974 |