排序
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct stu { int id; char name[10]; int grade;};const int MAXN = 1e5+5;stu s[MAXN];bool cmp1(stu a, stu b) { return a.id < b.id;}bool cmp2(stu a, stu b) { int c = strcmp(a.name, b.name); if (!c) return a.id < b.id; else if (c < 0) return true; else return false;}bool cmp3(stu a, stu b) { if (a.grade == b.grade) return a.id < b.id; else return a.grade < b.grade;}int main() { int n, c; scanf("%d%d", &n, &c); for (int i = 0; i < n; i++) scanf("%d%s%d", &s[i].id, s[i].name, &s[i].grade); if (c == 1) sort(s, s+n, cmp1); else if (c == 2) sort(s, s+n, cmp2); else sort(s, s+n, cmp3); for (int i = 0; i < n; i++) PRintf("%06d %s %d/n", s[i].id, s[i].name, s[i].grade); return 0;}新闻热点
疑难解答