主要是定义结构体,再加上手动实现sort排序
#include <iostream>
#include <algorithm>
using namespace std;
struct score
{
int time; // 录入时间
string name; // 姓名
int score; // 分数
};
int asce(score s1, score s2)
{
if (s1.score == s2.score)
return s1.time < s2.time;
else
return s1.score < s2.score;
}
int desc(score s1, score s2)
{
if (s1.score == s2.score)
return s1.time < s2.time;
else
return s1.score > s2.score;
}
int main()
{
int T;
while (cin >> T)
{
int type, time = 0; // 排序类型、录入时间
score scores[T]; // 成绩序列
cin >> type; // 排序类型
for (int i = 0; i < T; i++) // 录入成绩序列
{
scores[i].time = time++;
cin >> scores[i].name >> scores[i].score;
}
if (type == 1) // 升序
sort(scores, scores + T, asce);
else // 降序
sort(scores, scores + T, desc);
for (auto item : scores)
cout << item.name << " " << item.score << endl;
}
}

京公网安备 11010502036488号