结构体

感染新病毒后,来医院就诊的病人越来越多,每位病人包括的信息如下:姓名、病重程度和年龄。 对于来就诊的病人,医院按照如下规则对病人进行排序并进行诊治,具体规则为:病重程度高的优先诊治,同样病重程度,优先诊治年龄大的,如果年龄也相同,优先诊治名字按照字典顺序排在前面的。现在给出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
#include
#include
#include
using namespace std;

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

bool compare(const Patient& a, const Patient& 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 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 << " " << patients[i].severity << " " << 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 类型的容器 patients,用于存储所有病人的信息。
通过循环 for (int i = 0; i < n; i++) 依次从标准输入读取每个病人的姓名、病重程度和年龄,并存储到 patients 容器对应的元素中。
之后调用 sort 函数,传入 patients 容器的起始迭代器 patients.begin() 和结束迭代器 patients.end() 以及比较函数 compare,对 patients 容器中的病人信息按照定义好的规则进行排序。
最后再通过循环 for (int i = 0; i < n; i++) 依次输出排序后的每个病人的信息,格式为姓名、病重程度和年龄,每个信息之间用空格隔开,每行输出一个病人的信息。
这样,代码就能够根据题目要求,对输入的病人信息进行正确排序并输出,实现了医院对病人诊治顺序安排的模拟功能。
全部评论

相关推荐

2024-12-21 18:48
西安邮电大学 C++
黑皮白袜臭脚体育生:按使用了什么技术解决了什么问题,优化了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经390star,牛客上有完整文档教程
点赞 评论 收藏
分享
2024-12-10 00:08
韩山师范学院 Java
讲道理的变色龙在午休:26届已经卷成这个b样了吗,遥想我们24届同学能用java敲个小游戏都算厉害了,20届的更加是一条狗都能找到工作。只能说祝你好运兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务