【题意】
给出一些学生的姓名、学号、年级信息,按照年级非递增(因为不存在相同的年级,其实就是递减)的顺序输出指定年级区间内学生的姓名和学号信息。
【思路】
用个vector存信息的结构体,写个cmp函数,sort一下,再输出指定区间信息即可。
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct{
string name;
string id;
int grade;
}record;
bool cmp(record r1, record r2){
return r1.grade>=r2.grade;
}
int main(int argc, char const *argv[])
{
int n,grade1,grade2;
vector<record> records;
record tmp;
cin >> n;
string name;
string id;
int grade;
while(n--){
cin >> tmp.name >> tmp.id >> tmp.grade;
records.push_back(tmp);
}
sort(records.begin(), records.end(),cmp);
cin >> grade1 >> grade2;
vector<record>::iterator it = records.begin();
while((*it).grade>grade2 && it!=records.end()){
it++;
}
int cnt=0;
while((*it).grade>=grade1 && it!=records.end()){
cout << (*it).name << " " << (*it).id << endl;
it++;
cnt++;
}
if(!cnt){
cout << "NONE";
}
system("pause");
return 0;
}