这类题目归结于常用技巧与算法,有很鲜明的套路,重在理解其规则,通常写起来不算太复杂。
题目描述:
题目大致意思:
相对于前面几道题目,这道题目的难度要低很多,给出N个学生的姓名,id和分数,按照分数从高到低进行排序,并且输出在分数范围内的姓名和id。
大致思路:
用一个结构体来存储一个学生的信息,进而用一个结构体数组来存储所有学生的信息,按照条件排序后,进行输出即可。
提交结果:
有一个测试用例未通过,放在第二轮刷题时解决。
提交的代码如下:
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;
struct Node
{
string name;
string id;
int grade;
};
vector<Node> arr;
bool cmp(Node node1, Node node2)
{
return node1.grade > node2.grade;
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
Node node;
cin >> node.name >> node.id >> node.grade;
arr.push_back(node);
}
int low, high;
cin >> low >> high;
sort(arr.begin(), arr.end(), cmp);
for (int i = 0; i < arr.size(); i++)
{
if (arr[i].grade >= low && arr[i].grade <= high)
cout << arr[i].name << " " << arr[i].id << endl;
}
return 0;
}
本次提交后累计得分649,排名为12765。