主要是定义结构体,再加上手动实现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; } }