又是爽题:知道题目中规中矩的简单:考察知识点:简单排序
题目描述:输入学生的信息,然后查找在区间[grade1,grade2]的成绩,如果没有学生在这个区间,那么直接输出NONE。如果有学生在这里面,按照成绩成绩的排序从大到小的输出学生name和id。
//就是输出在这个范围成绩的学生
//name[1] ID[1] grade[1]
#include <iostream>
#include <algorithm>
using namespace std;
const int N=101;
struct Student{
string name,id;
int grade;
}stu[N];
bool cmp(Student a,Student b){
return a.grade>b.grade;
}
int main(){
int n,a,b;
cin>>n;
for(int i=0;i<n;i++) cin>>stu[i].name>>stu[i].id>>stu[i].grade;
sort(stu,stu+n,cmp);
cin>>a>>b;//注意是闭区间
int cnt=0;//如果还是0,那么就直接去输出NONE
for(int i=0;i<n;i++){
if(stu[i].grade>=a&&stu[i].grade<=b) cnt++;
}
if(!cnt) puts("NONE");
else{
//cout<<cnt;
for(int i=0;i<n;i++){
if(stu[i].grade>=a&&stu[i].grade<=b){
cout<<stu[i].name<<' '<<stu[i].id<</*stu[i].grade<<*/endl;
}
}
}
return 0;
}