PAT 1004 成绩排名
1. 题目描述及在线测试位置
PAT 1004 成绩排名 :读入多名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号
2. 具体实现
2.1 基本思路
- 通过struct 结构体数组存储数据
struct student
{
string StudentName;
string StudentNumber;
int Grade=0;
}stu[max];
- 通过sort( )函数进行排序,需要自定义compare( )按成绩从大到小排序
bool compare(struct student a, struct student b)
{
return a.Grade > b.Grade;
}
- 打印预期结果:结构体数组首元素和尾元素
2.2 AC代码
#include <algorithm>
#include <iostream>
using namespace std;
#define max 1000
struct student
{
string StudentName;
string StudentNumber;
int Grade=0;
}stu[max];
bool compare(struct student a, struct student b)
{
return a.Grade > b.Grade;
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> stu[i].StudentName >> stu[i].StudentNumber >> stu[i].Grade;
sort(stu, stu + n, compare);
cout << stu[0].StudentName << " " << stu[0].StudentNumber << endl;
cout << stu[n-1].StudentName << " " << stu[n-1].StudentNumber << endl;
return 0;
}