• 1004 成绩排名(20 分)


    每个测试输入包含 1 个测试用例,格式为

    第 1 行:正整数 n
    第 2 行:第 1 个学生的姓名 学号 成绩
    第 3 行:第 2 个学生的姓名 学号 成绩
      ... ... ...
    第 n+1 行:第 n 个学生的姓名 学号 成绩
    

    其中姓名学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

    输出格式:

    对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。

    输入样例:

    3
    Joe Math990112 89
    Mike CS991301 100
    Mary EE990830 95
    

    输出样例:

    Mike CS991301
    Joe Math990112
    

    代码如下:

    本题主要考察的是结构体的根据一定次序进行排序的方式。

    其中主要运用的是#include<algorithm>库中的sort函数+自己定义的cmp函数;

    这是一种比较常用的排序方式;其中cmp函数的‘>'和'x.t,y.t'决定了是以t为依据,并且是从大到小排的。

    归根到底这题为水题,(很水) 

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    struct node
    { char name[100];
       char number[100];
       int t;
    }p[100];
    int cmp(node x,node y)
    {
        return x.t>y.t;
    }
    int main()
    {
        int i;
        cin >> i;
        int m=0;
        while(i--)
        {
            scanf("%s",p[m].name);
            scanf("%s",p[m].number);
            scanf("%d",&p[m].t);
            m++;
        }
        sort(p,p+m,cmp);
        cout << p[0].name<<" "<<p[0].number<<endl;
         cout << p[m-1].name<<" "<<p[m-1].number<<endl;
        return 0;
    }
  • 相关阅读:
    Elasticsearch布尔查询——bool
    Elasticsearch查询
    数据从文件导入Elasticsearch
    Elasticsearch批处理操作——bulk API
    Mysql笔记——DCL
    Mysql笔记——DML
    Mysql笔记——DDL
    Java笔记——面向接口编程(DAO模式)
    Java笔记——equals和==的区别
    JavaWeb笔记——注册登录系统项目思路
  • 原文地址:https://www.cnblogs.com/Staceyacm/p/10782129.html
Copyright © 2020-2023  润新知