问题标题: 酷町堂:4572 年龄排序,各位高手把结构体的思路给我。

0
0
已解决
邹昊轩
邹昊轩
资深光能
资深光能

题目描述 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号之前

邹昊轩在2020-03-28 10:55:50追加了内容

各位高手快来帮我!


0
已采纳
周明轩
周明轩
资深光能
资深光能
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;
    return a.id<b.id;

………………
cin>>s[i].name>>s[i].y>>s[i].m>>s[i].d;
        s[i].id=i+1;
…………

这是大体的框架。

望采纳,谢谢

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

我学过了,我来告诉你:

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

  

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

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

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

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

 return x.flag < y.flag;

}

求采纳

0
0
李致远
李致远
高级光能
高级光能

结构体内只要定义题目要输入的数就好了,注意名字要用string定义。

接下来:

高手 排序一下就ok

大佬 定义cmp(bool)函数+sort排序(头文件algorithm)

0
张岳恒
张岳恒
资深光能
资深光能

结构体+sort懒人排序(sort里写条件)

我要回答