问题标题: 酷町堂:4572

0
0
已解决
被禁言 何冯成
何冯成
中级光能
中级光能
#include<bits/stdc++.h>
using namespace std;
struct zf{
    string s;
    int y,m,d;
}w[100];
bool cmp(zf x,zf z){
    if(x.y!=z.y){
        return x.y>z.y;
    }
    else if(x.m!=z.m){
        return x.m>z.m;
    }
    else{
        return x.d>z.d;
    }
}
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>w[i].s>>w[i].y>>w[i].m>>w[i].d;
     }
    sort(w+1,w+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        cout<<w[i].s<<endl;
    }
    return 0;
}

 

何冯成在2020-01-28 15:01:45追加了内容

哪错了

 

何冯成在2020-01-28 15:03:02追加了内容


0
已采纳
被禁言 周浩然
周浩然
初级守护
初级守护

我学过了,我来告诉你:

你得定义一个 变量来存储每一个姓名对应的编号,这样就能通过学生输入先后顺序来排序,你就少了这个:

  

bool cmp(... x , ...  y){

............................

............................

.............................

 return x.flag < y.flag;

}

 

0
周琪岳
周琪岳
资深光能
资深光能

1.用万能头不好

2.我跟你一个班,你没学结构体排序,就不要刷分了

3.小心卢文东质问你

0
0
0
0
我要回答