描述 cjf君想调查学校OI组每个同学的生日,并按照从大到小的顺序排序。但cjf君最近作业很多,没有时间,所以请你帮她排序。 输入 有2行, 第1行为OI组总人数n; 第2行至第n+1行分别是每人的姓名s、出生年y、月m、日d。 输出 有n行, 即n个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出) 输入样例 1 3 Yangchu 1992 4 23 Qiujingya 1993 10 13 Luowen 1991 8 1 输出样例1 Luowen Yangchu Qiujingya 提示 数据规模 1<n<100 length(s)<20 c++ 代码
时间: 2024-04-18 13:28:33 浏览: 127
请注意,以下是我根据您的要求编写的示例代码,用于对OI组同学的生日进行排序:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
struct Student {
std::string name;
int year;
int month;
int day;
};
bool compareBirthdays(const Student& student1, const Student& student2) {
if (student1.year != student2.year) {
return student1.year < student2.year;
} else if (student1.month != student2.month) {
return student1.month < student2.month;
} else {
return student1.day < student2.day;
}
}
int main() {
int n;
std::cin >> n;
std::vector<Student> students(n);
for (int i = 0; i < n; i++) {
std::cin >> students[i].name >> students[i].year >> students[i].month >> students[i].day;
}
std::sort(students.begin(), students.end(), compareBirthdays);
for (int i = n - 1; i >= 0; i--) {
std::cout << students[i].name << std::endl;
}
return 0;
}
```
请将上述代码复制到您的C++编译器中运行,并按照要求输入OI组同学的信息。程序将按照生日从大到小的顺序输出同学的姓名。
阅读全文