1004-成绩排名
leenickzh Lv4

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

输入格式

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

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

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

输出格式

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

输入样例

1
2
3
4
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95

输出样例

1
2
Mike CS991301
Joe Math990112

分析

用vector容器接收stu的信息,stuBool里面以stu的成绩排名,stl里面的sort函数对容器进行排序,输出第一个和最后一个stu的信息.

代码

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
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
struct stu
{
string name;
string id;
int grade;
};

bool stuCmp(stu a,stu b)
{
return a.grade < b.grade;
}

int main()
{
int n;
cin>>n;
vector<stu> stuList;
string name,id;
int grade;
stu stu;
for(int i = 0;i < n;i++)
{
cin>>name>>id>>grade;
stu.name = name;
stu.id = id;
stu.grade = grade;
stuList.push_back(stu);
}
sort(stuList.begin(),stuList.end(),stuCmp);
cout<<stuList[n-1].name<<" "<<stuList[n-1].id<<endl;
cout<<stuList[0].name<<" "<<stuList[0].id<<endl;
return 0;
}
  • Post title:1004-成绩排名
  • Post author:leenickzh
  • Create time:2021-05-09 10:26:51
  • Post link:https://nickk.cn/2021/05/09/1004-成绩排名/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments