题目
题目大意
学生有姓名,编号和分数,给定分数区间,输出在这个区间内的人名和编号。输出顺序按照分数从高到低,没有重复的分数。
思路
非常简单的结构体排序题,定义一个结构体,按照题目条件sort就可以了。
代码
cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct stu{
string name;
string id;
int score;
};
vector<stu> v;
bool cmp(stu x, stu y){
return x.score > y.score;
}
int main(){
int n;
cin >> n;
v.resize(n);
for (int i = 0; i < n; i++){
cin >> v[i].name >> v[i].id >> v[i].score;
}
int l, h;
cin >> l >> h;
for (int i = 0; i < (int)v.size(); i++){
if (v[i].score < l || v[i].score > h){
v.erase(v.begin() + i);
i--;
}
}
if ((int)v.size() == 0){
cout << "NONE" << endl;
return 0;
}
sort(v.begin(), v.end(), cmp);
for (int i = 0; i < (int)v.size(); i++){
cout << v[i].name << " " << v[i].id << endl;
}
return 0;
}