zoukankan      html  css  js  c++  java
  • 计算机考研复试真题 成绩排序

    题目描述

    查找和排序

    题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
    都按先录入排列在前的规则处理。

    示例:
    jack      70
    peter     96
    Tom       70
    smith     67

    从高到低  成绩 
    peter     96 
    jack      70 
    Tom       70 
    smith     67

    从低到高

    smith     67

    jack      70 
    Tom      70 
    peter     96

    输入描述:

    输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空格隔开

    输出描述:

    按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开

    示例1

    输入

    3
    0
    fang 90
    yang 50
    ning 70

    输出

    fang 90
    ning 70
    yang 50

    --------------------------------------------------------------------------------------------------------------------------

    /*
    解题思路:貌似用二维向量+桶排序能解决,但是还没学习,先码住以后再看。
            大概思路就是用一个二维向量,把每个分数连带姓名存在向量里,升序的话就顺序输出向量(即二维数组),降序的话就反序输出即可,
            这大概就是桶排序也成基数排序的思想,适用于分布均匀的元素。
    */
    #include <iostream>
    #include <vector>
    #include <string.h>
    using namespace std;
     
    int main(){
        int n;
        while(cin >> n){
            int flag;
            cin >> flag;
            string name;
            int score;
            vector<vector<string> > students(101, vector<string>());
            for(int i = 0;i < n;i++){
                cin >> name >> score;
                students[score].push_back(name);
            }
            if(flag){
                for(int i = 0;i < students.size();i++){             
                    for(int j = 0;j < students[i].size();j++)
                        cout << students[i][j] << " " << i << endl;
                }
            }
            else{
                for(int i = students.size() - 1;i >= 0;i--){            
                    for(int j = 0;j < students[i].size();j++)
                        cout << students[i][j] << " " << i << endl;
                }
            }     
        }
        return 0;
    }
     
  • 相关阅读:
    2-SAT·hihoCoder音乐节
    Music in Car
    Game with a Strip
    Oleg and Little Ponies
    组合数性质求K个数选取i*j个数分成j组的方案数
    Python学习笔记03
    Python学习笔记02
    Python 学习笔记01
    欺骗侦测
    Oracle 使用小计(4)
  • 原文地址:https://www.cnblogs.com/parzulpan/p/9922969.html
Copyright © 2011-2022 走看看