weixin_53185809 2022-07-29 14:29 采纳率: 90.9%
浏览 66
已结题

结构体问题,不难但很乱

小图灵正在为全校同学登记档案,需要你来帮他排序。学校共n个班(不超过20),编号为1到n;每班的学生数量不等,第i个班的学生数
为k(不超过50),每名同学的学号为1到k。排序时,首先考虑生日,出生越早,排序越靠前;生日相同时,按照名字的字典序排序,学
校内没有同名的同学。最后输出排序后每名同学的名字、班级和学号。
输入描述
第一行一个整数n,表示班级数量。接下来若干行,可分为n组,分别描述1号班到n号班的情况。
每班的第一行是整数k,表示该班级有k名同学;接下来k行,每行一个字符串和三个整数,表示该班1号到k号同学的名字(不超过20个字
符)和出生的年份、月份、日期。

这道题目我不理解,大家可以写出代码帮帮我吗,很着急,如果对我有帮助的话我会及时采纳的

  • 写回答

2条回答 默认 最新

  • 浪客 2022-07-29 15:13
    关注
    
    typedef struct stu
    {
        int cls;
        int id;
        char name[20];
        int y, m, d;
    } Stu;
    
    bool cmp(const Stu &p, const Stu &q)
    {
        if (p.y == q.y)
        {
            if (p.m == q.m)
            {
                if (p.d == q.d)
                    return strcmp(p.name, q.name) < 0;
                else
                    return p.d < q.d;
            }
            else
                return p.m < q.m;
        }
        return p.y < q.y;
    }
    
    int main()
    {
        int n, k, i, j;
        cin >> n;
        vector<Stu> student;
    
        for (i = 0; i < n; i++)
        {
            cin >> k;
            for (j = 0; j < k; j++)
            {
                Stu stu;
                cin >> stu.name >> stu.y >> stu.m >> stu.d;
                stu.id = j + 1;
                stu.cls = i + 1;
                student.push_back(stu);
            }
        }
    
        sort(student.begin(), student.end(), cmp);
    
        cout << endl;
        for (i = 0; i < student.size(); i++)
        {
            cout << student[i].name << " "
                 << student[i].cls << " "
                 << student[i].id << endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月20日
  • 已采纳回答 8月12日
  • 创建了问题 7月29日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题