考研机试 成绩排序

成绩排序

给定学生的成绩单,成绩单中包含每个学生的姓名和分数,请按照要求将成绩单按成绩从高到低或从低到高的顺序进行重新排列。
对于成绩相同的学生,无论以哪种顺序排列,都要按照原始成绩单中靠前的学生排列在前的规则处理。
输入格式
第一行包含整数 N,表示学生个数。
第二行包含一个整数 0或 1,表示排序规则,0 表示从高到低,1表示从低到高。
接下来 N行,每行描述一个学生的信息,包含一个长度不超过 10 的小写字母构成的字符串表示姓名以及一个范围在 0∼100的整数表示分数。
输出格式
输出重新排序后的成绩单。
每行输出一个学生的姓名和成绩,用单个空格隔开。
数据范围
1≤N≤1000

成绩排序2

给定学生的成绩单,成绩单中包含每个学生的学号和分数,请将成绩单按成绩从低到高的顺序重新排序。

如果学生的成绩相同,则按照学号从小到大的顺序进行排序。
输入格式
第一行包含整数 N,表示学生数量。
接下来 N行,每行包含两个整数 p 和 q,表示一个学生的学号和成绩。学生的学号各不相同。
输出格式
输出重新排序后的成绩单。
每行输出一个学生的学号和成绩,用单个空格隔开。
数据范围

1≤N≤100,
1≤p≤100,
0≤q≤100

输入样例:

3
1 90
2 87
3 92

输出样例:

2 87
1 90
3 92

思路利用自定义类型的动态数组存放 学号和成绩 写compare函数 成绩从小到大排序 成绩相同按学号从小到大排序

#include <vector>
#include <algorithm>
#include <stdio.h>
using namespace std;
struct MyType{
   
    int num;
    int score;
};
bool compare(MyType lhs,MyType rhs){
   

    if(lhs.score<rhs.score)
    {
   return true;}
    else if(lhs.score==rhs.score&&lhs.num<rhs.num)
    {
   return true;}
    return false;

}
int main(){
   
    int n,num,score;
    scanf("%d",&n);
    //需要排序两次 先按学号小到大排 再按学号小到大排 快排底层是不稳定的
    //
    vector<MyType> vec1;
    for(int i=0;i<n;++i){
   
        scanf("%d%d",&num,&score);
        vec1.push_back({
   num,score});
    }
    //排序
    sort(vec1.begin(),vec1.end(),compare);
  /*  for(int i=0;i<n;++i){
        printf("%d %d\n",vec1[i].num,vec1[i].score);
    }*/
    //我这里必须是稳定的排序 相同的成绩我的顺序别动我的了
    for(int i=0;i<n;++i){
   
        printf("%d %d\n",vec1[i].num,vec1[i].score);
    }
}

相关推荐

  1. 成绩排序

    2024-01-27 16:26:04       48 阅读
  2. WERTYU

    2024-01-27 16:26:04       46 阅读
  3. 链表合并

    2024-01-27 16:26:04       42 阅读
  4. 手机键盘

    2024-01-27 16:26:04       59 阅读
  5. 三元组

    2024-01-27 16:26:04       55 阅读
  6. 阶乘的和

    2024-01-27 16:26:04       51 阅读
  7. 试题

    2024-01-27 16:26:04       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-27 16:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-27 16:26:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-27 16:26:04       82 阅读
  4. Python语言-面向对象

    2024-01-27 16:26:04       91 阅读

热门阅读

  1. 七、SQL编程

    2024-01-27 16:26:04       40 阅读
  2. vue2后台管理项目权限的分类

    2024-01-27 16:26:04       52 阅读
  3. 系统架构16 - 软件工程(4)

    2024-01-27 16:26:04       46 阅读
  4. Element修改树结构样式--虚线树

    2024-01-27 16:26:04       49 阅读
  5. 有关递推题目的感想(继上篇文章)

    2024-01-27 16:26:04       46 阅读
  6. SQL Server 中,删除表数据有以下几种方式

    2024-01-27 16:26:04       61 阅读
  7. 代码随想录算法训练营数组总结

    2024-01-27 16:26:04       70 阅读
  8. ubuntu 22.04 安装redis并设置远程连接

    2024-01-27 16:26:04       66 阅读
  9. OPEN NT 4.5 编译方法和源代码下载

    2024-01-27 16:26:04       51 阅读
  10. 算法训练营Day57(动态规划17)

    2024-01-27 16:26:04       51 阅读
  11. 解密数据之谜:算法与数据结构的奇妙联动

    2024-01-27 16:26:04       43 阅读
  12. 常见命令及参数

    2024-01-27 16:26:04       57 阅读
  13. 负载均衡是什么,负载均衡有什么作用

    2024-01-27 16:26:04       57 阅读