首页 > 代码库 > PAT 1028. List Sorting
PAT 1028. List Sorting
#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>using namespace std;class Stu {public: char id[8]; char name[10]; char grade;};bool cmp_id(const Stu* a, const Stu* b) { return strcmp(a->id, b->id) < 0;}bool cmp_name(const Stu* a, const Stu* b) { int res = strcmp(a->name, b->name); if (res > 0) { return false; } else if (res < 0) { return true; } return cmp_id(a, b);}bool cmp_grade(const Stu* a, const Stu* b) { if (a->grade > b->grade) { return false; } else if (a->grade < b->grade) { return true; } return cmp_id(a, b);}int main() { int N, C; scanf("%d%d", &N, &C); vector<Stu*> stus(N, NULL); for (int i=0; i<N; i++) { Stu* cur = stus[i] = new Stu(); scanf("%s%s%d", cur->id, cur->name, &(cur->grade)); } // TODO: use function ptr array if (C==1) { sort(stus.begin(), stus.end(), cmp_id); } else if (C==2) { sort(stus.begin(), stus.end(), cmp_name); } else { sort(stus.begin(), stus.end(), cmp_grade); } for (int i=0; i<N; i++) { printf("%s %s %d\n", stus[i]->id, stus[i]->name, stus[i]->grade); } return 0;}
还是快不起来,那么水的题
PAT 1028. List Sorting
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。