PAT乙级1004

题目链接

https://pintia.cn/problem-sets/994805260223102976/problems/994805321640296448

题解

  1. 获取用户输入
  2. 排序
  3. 输出

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// PAT BasicLevel T1004
// https://pintia.cn/problem-sets/994805260223102976/problems/994805321640296448
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

/**
* 学生类
*/
struct Student
{
// 姓名
string name;
// 学号
string id;
// 分数
int score;
};

/**
* 比较两个学生
*/
bool cmp(Student &s1, Student &s2);

int main()
{
// 学生个数
int numOfStu = 0;
cin >> numOfStu;

// 学生数组
vector<Student> students;
students.resize(numOfStu);

// 获取学生信息
for (int i = 0; i < numOfStu; i++)
{
cin >> students[i].name;
cin >> students[i].id;
cin >> students[i].score;
}

// 把学生排序
sort(students.begin(), students.end(), cmp);

// 输出成绩最好和成绩最差的学生的名字和学号
cout << students.back().name << " " << students.back().id << endl;
cout << students.front().name << " " << students.front().id << endl;

return 0;
}

/**
* 比较两个学生
*/
bool cmp(Student &s1, Student &s2)
{
return s1.score < s2.score;
}

作者:@臭咸鱼

转载请注明出处:https://chouxianyu.github.io

欢迎讨论和交流!