输入N(1≤N≤300)位学生的信息。每个学生的信息包含:姓名、年龄、在读学校。 请你按学生姓名从小到大(即按字典序)进行排序,若姓名相同,则年龄大的在前。
时间: 2024-03-24 13:40:11 浏览: 135
可以使用结构体来保存学生的信息,然后使用 `sort` 函数对结构体数组进行排序,可以按照题目要求进行排序。具体实现如下:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct Student {
string name;
int age;
string school;
};
bool cmp(Student s1, Student s2) {
if (s1.name != s2.name) { // 如果姓名不同,按姓名排序
return s1.name < s2.name;
} else { // 如果姓名相同,按年龄排序
return s1.age > s2.age;
}
}
int main() {
int n;
cin >> n; // 输入学生数量
Student students[n];
for (int i = 0; i < n; i++) {
cin >> students[i].name >> students[i].age >> students[i].school;
}
sort(students, students + n, cmp); // 对学生数组进行排序
for (int i = 0; i < n; i++) {
cout << students[i].name << " " << students[i].age << " " << students[i].school << endl;
}
return 0;
}
```
运行程序后,依次输入每个学生的姓名、年龄、在读学校,程序将会按照学生姓名从小到大(即按字典序)进行排序,若姓名相同,则年龄大的在前,并输出排序后的学生信息。
阅读全文