zoukankan      html  css  js  c++  java
  • PAT 1004 成绩排名

    PAT 1004 成绩排名

    题目:

    读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

    输入格式:

    每个测试输入包含 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 <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    struct Student{
        string name;
        string course;
        int grade;
    }input;
    
    bool cmp(Student a, Student b){
        return a.grade > b.grade;//按照成绩排序
    }
    int main()
    {
        int numStu;
    
        vector<Student> students;
        cin>>numStu;
        int last = numStu-1;
        for(int i = 0;i < numStu;++i){
            cin>>input.name>>input.course>>input.grade;
            students.push_back(input);
        }
        sort(students.begin(),students.end(),cmp);
        cout<<students[0].name<<" "<<students[0].course<<endl;
        cout<<students[last].name<<" "<<students[last].course;
        return 0;
    }
    

    解析:

    使用sort()函数对结构体数组进行排序,输出结果即可.

    关于sort():

    sort(begin,end,cmp) 适用于数组对象,传入三个参数,分别为头指针 尾指针以及cmp函数

    beginend是指针,可以随意规划

    sort(a,a+5,cmp);
    sort(a+3,a+5,cmp);
    

    如果不带cmp函数,默认为非降序排序

    bool cmp(类型 input1,类型 input2){
    	return a>b;//从大到小
    //a和b可以为input本身,也可以是其中的一项参数 如a.val之类的
    	return a<b;//从小到大
    }
    
  • 相关阅读:
    Truck History(poj 1789)
    Highways poj 2485
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    115. Distinct Subsequences
    114. Flatten Binary Tree to Linked List
    113. Path Sum II
    109. Convert Sorted List to Binary Search Tree
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
  • 原文地址:https://www.cnblogs.com/EPZ11/p/12275760.html
Copyright © 2011-2022 走看看