问题标题: 酷町堂:2733

0
0
已解决
朱家烨
朱家烨
资深守护
资深守护
#include<bits/stdc++.h>
using namespace std;
struct stu{
    string name;
    int y;
    int m;
    int d;
    int f; 
}a[110];
bool cmp(stu a,stu b)
{
       if (a.y!=b.y)
    return a.y>b.y; 
      if (a.m!=b.m)
        return a.m>b.m; 
      if (a.d!=b.d)
        return a.d>b.d; 
      if(a.name!=b.name)
        return a.name>b.name;

      return a.f<b.f;

  }
int main()
{   
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].name>>a[i].y>>a[i].m>>a[i].d;
        a[i].f=i;
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        cout<<a[i].name<<endl;
    }
    return 0;
}

WHY


0
0
王俊杰
王俊杰
高级光能
高级光能

 

 

bool cmp(dx x,dx y){

if(!(x.y==y.y&&x.m==y.m&&x.d==y.d)){

if(x.y!=y.y)

return x.y>y.y;

if(x.m!=y.m)

return x.m>y.m;

return x.d>y.d;

}

return x.id<y.id;

}

0
丁博扬
丁博扬
中级天翼
中级天翼
  • if(x.年!=y.年){
  • return x.年>y.年;
  • }
  • if(x.月!=y.月){
  • return x.月>y.月;
  • }
  • if(x.日!=y.日){
  • return x.日>y.日;
  • }
  • return x.顺序<y.顺序;
  • 输入:
  • for(int i=1;i<=n;i++){
  • cin>>a[i]的名字>>a[i]的年>>a[i]的月>>a[i]的日;
  • 计数器=i//记录第几个;
  • }
  • sort(自己想);
  • 循环输出名字

记得加sort头文件algorithmm哦

还有string

老师在讲了,采纳我吧

打字不易

0
我要回答