实验任务
一份杂乱无序的学生名单,请你按照班级和序号升序排列。
数据输入
第一行 N,代表有几位学生。(N <= 10000)
接下来 N 行,每行为 class_number, number, name,表示学生的班级,序号,姓名。(没有两人班级和序号均相同)
(班级和序号为 1,2,3,4..,学生姓名长度不超过 10)
数据输出
输出有序的名单,每行一条学生的信息。
输入示例
3
1 2 a
2 1 c
1 1 b
输出示例
1 1 b
1 2 a
2 1 c
解题思路
sort简单运用(stable_sort也可)。
参考代码
#include <iostream>
#include <algorithm>
#include <string>
const int maxn = 10010;
using namespace std;
struct STU{
int n1,n2;
string name;
}stu[maxn];
bool cmp(const STU& s1,const STU& s2){
return ((s1.n1 < s2.n1) || (s1.n1 == s2.n1 && s1.n2 < s2.n2));
}
int main()
{
int n,i;
while (cin >> n){
for (i = 0;i < n;i++)
cin >> stu[i].n1 >> stu[i].n2 >> stu[i].name;
sort(stu,stu+n,cmp);
for (i = 0;i < n;i++)
cout << stu[i].n1 << " " << stu[i].n2 << " " << stu[i].name << endl;
}
return 0;
}