PAT

1004成绩排名(20分)

题目

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

输入格式

每个测试输入包含 1 个测试用例,格式为:
PAT_第1张图片
其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

输出格式:

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

输入样例:

在这里插入图片描述

输出样例:

在这里插入图片描述

代码

这里我是用vector写的,代码如下:

#include"bits/stdc++.h"

using namespace std;

struct peo{
     
    int score;
    string id;
    string name;
};

bool cmp(peo a, peo b)
{
     
    return a.score > b.score;
}

int main()
{
     
    int n;
    vector<peo>v;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
     
        string name, id;
        int score;
        cin >> name >> id >> score;
        peo t;
        t.id = id;
        t.name = name;
        t.score = score;
        v.push_back(t);

    }
    sort(v.begin(), v. end(), cmp);
    cout << v[0].name << " " << v[0].id << endl;
    cout << v[n-1].name << " " << v[n-1].id << endl;
    system("pause");
    return 0;
}

你可能感兴趣的:(c++)