• 成绩排序


    题目描述

    查找和排序

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

       例示:
       jack      70
       peter     96
       Tom       70
       smith     67

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

       从低到高

       smith     67  

       Tom       70    
       jack      70    
       peter     96      


    输入描述:

    输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开



    输出描述:

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


    输入例子:
    3
    0
    fang 90
    yang 50
    ning 70

    输出例子:
    fang 90
    ning 70
    yang 50
     1 #include <iostream>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 typedef struct stu{
     6     string s;
     7     int score;
     8     int i;
     9 }Stu;
    10 
    11 bool cmp1(struct stu a, struct  stu b){
    12     if(a.score != b.score) 
    13         return a.score < b.score;
    14     else
    15         return a.i < b.i;
    16 }
    17 //降序
    18 bool cmp2(struct stu a, struct stu b){
    19     if(a.score != b.score) 
    20         return a.score > b.score;
    21     else
    22         return a.i < b.i;
    23 }
    24 
    25 int main(){
    26     int num;
    27     bool flag;
    28     while(cin >> num){
    29         Stu *a = new Stu [num];
    30         cin >> flag;
    31         for(int i = 0; i < num; i++){
    32             cin >> a[i].s >> a[i].score;
    33             a[i].i = i;
    34         }
    35         if(flag == 0){
    36             sort(a, a+num, cmp2);
    37         }else{
    38             sort(a, a+num, cmp1);
    39         }
    40     
    41         for(int i = 0; i < num; i++){
    42             cout << a[i].s << " " << a[i].score << endl;
    43         }
    44         delete [] a;
    45     }
    46     return 0;
    47 }
     
  • 相关阅读:
    java语法基础
    向linux内核增加一个系统调用-1
    dp-矩阵连乘
    struct和typedef struct
    Ubuntu安装Chrome及hosts修改
    c++primer-p100.用迭代器进行二分法搜索
    c++primer-p101.ex3.24
    c++ vector用法和迭代器
    Bytes和bits的区别(字节和位的区别)
    基于R语言的数据分析和挖掘方法总结——中位数检验
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/5745979.html
Copyright © 2020-2023  润新知