岚朋友


私信TA

用户名:a475308928

访问量:1389

签 名:

等  级
排  名 73
经  验 9651
参赛次数 0
文章发表 11
年  龄 0
在职情况 学生
学  校 ???
专  业 软件工程

  自我简介:

TA的其他文章

位运算 26行
浏览:46

解题思路:
一看数量较大就毫不犹豫选择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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区