结构体

感染新病毒后,来医院就诊的病人越来越多,每位病人包括的信息如下:姓名、病重程度和年龄。 对于来就诊的病人,医院按照如下规则对病人进行排序并进行诊治,具体规则为:病重程度高的优先诊治,同样病重程度,优先诊治年龄大的,如果年龄也相同,优先诊治名字按照字典顺序排在前面的。现在给出n个病人的信息,请编程输出排序后病人的信息。
输入描述:
共n + 1行,
第一行,一个整数n(3≤n≤1000),表示n个病人,
第2至第n + 1行,每行为一个病人的信息,包括姓名(长度小于100)、病重程度和年龄,用空格分隔。
输出描述:
排序后病人的信息,共n行,每行为一个病人的信息,详见输出样例。
示例1
输入
复制
5
zhaoyi 9 66
qianer 9 68
sunsan 6 33
zhousi 9 68
lisan 6 32
输出
复制
qianer 9 68
zhousi 9 68
zhaoyi 9 66
sunsan 6 33
lisan 6 32
以下是使用 C++ 解决上述问题的代码:
cpp
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;

struct Patient {
    string name;
    int severity;  // 病重程度
    int age;
};

bool compare(const Patient&amp; a, const Patient&amp; b) {
    if (a.severity > b.severity) return true;
    if (a.severity == b.severity) {
        if (a.age > b.age) return true;
        if (a.age == b.age) {
            return a.name < b.name;
        }
    }
    return false;
}

int main() {
    int n;
    cin >> n;
    vector<Patient> patients(n);
    for (int i = 0; i < n; i++) {
        cin >> patients[i].name >> patients[i].severity >> patients[i].age;
    }
    sort(patients.begin(), patients.end(), compare);
    for (int i = 0; i < n; i++) {
        cout << patients[i].name << &quot; &quot; << patients[i].severity << &quot; &quot; << patients[i].age << endl;
    }
    return 0;
}
代码解释
定义结构体和比较函数
首先定义了 Patient 结构体,用于存储病人的姓名、病重程度和年龄这三个信息。
然后定义了名为 compare 的比较函数,它接受两个 Patient 类型的常量引用作为参数,用于确定两个病人之间的先后顺序。按照题目给定的规则:
如果 a 病人的病重程度大于 b 病人的病重程度,那么 a 病人优先,返回 true。
如果病重程度相等,则比较年龄,若 a 病人年龄大于 b 病人年龄,a 病人优先,返回 true。
如果年龄也相等,就按照字典顺序比较姓名,姓名在字典顺序中排在前面的病人优先,即返回 a.name < b.name 的结果(字典序比较小的为 true,表示更优先)。
main 函数部分
在 main 函数中,先从标准输入读取表示病人数量的整数 n。
接着创建一个大小为 n 的 vector<Patient> 类型的容器 patients,用于存储所有病人的信息。
通过循环 for (int i = 0; i < n; i++) 依次从标准输入读取每个病人的姓名、病重程度和年龄,并存储到 patients 容器对应的元素中。
之后调用 sort 函数,传入 patients 容器的起始迭代器 patients.begin() 和结束迭代器 patients.end() 以及比较函数 compare,对 patients 容器中的病人信息按照定义好的规则进行排序。
最后再通过循环 for (int i = 0; i < n; i++) 依次输出排序后的每个病人的信息,格式为姓名、病重程度和年龄,每个信息之间用空格隔开,每行输出一个病人的信息。
这样,代码就能够根据题目要求,对输入的病人信息进行正确排序并输出,实现了医院对病人诊治顺序安排的模拟功能。
全部评论

相关推荐

老板加个卤鸡蛋:HR看了以为来卧底来了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
3209次浏览 43人参与
# HR最不可信的一句话是__ #
1028次浏览 32人参与
# 巨人网络春招 #
11484次浏览 224人参与
# 春招至今,你的战绩如何? #
14912次浏览 140人参与
# AI面会问哪些问题? #
900次浏览 22人参与
# 你的实习产出是真实的还是包装的? #
2722次浏览 52人参与
# 米连集团26产品管培生项目 #
7093次浏览 224人参与
# 沪漂/北漂你觉得哪个更苦? #
1267次浏览 39人参与
# 你做过最难的笔试是哪家公司 #
1145次浏览 20人参与
# AI时代,哪个岗位还有“活路” #
2699次浏览 50人参与
# XX请雇我工作 #
51147次浏览 171人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7968次浏览 43人参与
# 简历第一个项目做什么 #
32084次浏览 357人参与
# 简历中的项目经历要怎么写? #
310925次浏览 4257人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152842次浏览 889人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187559次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64553次浏览 865人参与
# 如果重来一次你还会读研吗 #
229974次浏览 2011人参与
# 投格力的你,拿到offer了吗? #
178254次浏览 891人参与
# 你怎么看待AI面试 #
180669次浏览 1297人参与
# 正在春招的你,也参与了去年秋招吗? #
364172次浏览 2641人参与
# 腾讯音乐求职进展汇总 #
160825次浏览 1114人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务