问题标题: 酷町堂:4572

0
0
已解决
刘承志
刘承志
中级光能
中级光能

4572   年龄排序

题目描述 Description

小明帮老师统计班上同学的出生日期,并根据年龄给同学们排序。统计的出生日期格式为六位数字,例如,某同学是1998-9-30日出生的,那么统计的格式就是98 9 30。请你编写一个程序,请按照他们年龄从小到大排序,年龄相同的按照输入的顺序先后来排序。

输入描述 Input Description

n+1行,第一行一个整数n,表示统计的人数
接下来n行,每行一个字符串和三个二位整数组成的数(0省略),中间通过空格隔开

输出描述 Output Description

n行,每行一个字符串,表示排序后姓名

样例输入 Sample Input

 

3
xiaoming 98 9 30
xiaohong 97 7 20
xiaohua 98 9 29

样例输出 Sample Output

 

xiaoming
xiaohua
xiaohong

数据范围及提示 Data Size & Hint

0<n<=100
所有同学的出生日期都在2000年1月1号之前

 

我的80代码:

#include<iostream>
#include<string>
#include <algorithm>
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;
}

 


0
已采纳
董子墨
董子墨
中级天翼
中级天翼

年龄相同的按照输入的顺序先后来排序!!!

0
刘承志
刘承志
中级光能
中级光能

哪错了???????????

0
0
0
0
我要回答