PAT_甲级_1028 List Sorting

题目大意:

给出N个考生的准考证号、姓名、分数,并输入参数C,要求按C的不同取值进行排序:

  1. C= 1,则按准考证号从小到大排序。
  2. C= 2,则按姓名字典序从小到大排序;若姓名相同,则按准考证号从小到大排序。
  3. C= 3,则按分数从小到大排序;若分数相同,则按准考证号从小到大排序。
算法思路:
常规排序题,使用结构体Student存储学生信息,在排序函数中根据C的取值不同选择不同的排序方式。
排序函数如下cmp函数:
bool cmp(Student a,Student b){
    if (C==1){
        // 根据id排序
        return a.id
提交结果:

PAT_甲级_1028 List Sorting_第1张图片

注意点
最后的一组数据使用cin、cout可能会超时
AC代码
#include
#include
#include
#include

using namespace std;

int N,C; // 记录数目和待排序的列

struct Student{
    int id;
    string name;
    int grade;
};
vector students;// 学生的记录集合

bool cmp(Student a,Student b){
    if (C==1){
        // 根据id排序
        return a.id

你可能感兴趣的:(算法-数据结构,c++)