题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1
#include <iostream> #include <algorithm> #include <string> using namespace std; struct student{ string name; int score; bool operator<(const student& p){ return (this->name < p.name) && (this->score < p.score); } }; bool Compare1 (student x, student y){ //低到高 return x.score > y.score; } bool Compare2 (student x, student y){ //高到低 return x.score < y.score; } int main() { int n, m; while (scanf ("%d", &n) != EOF){ scanf ("%d", &m); student stu[n]; for (int i = 0; i < n; i++){ cin >> stu[i].name >> stu[i].score; } if (m == 1){ stable_sort (stu, stu + n, Compare2); }else { stable_sort (stu, stu + n, Compare1); } for (int i = 0; i < n; i++){ cout << stu[i].name << ' ' << stu[i].score << endl; } } return 0; }