前言
正文
参考题解
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
/* 基本的排序题 题意: 输入n条学生记录,每条记录包含name,id,grade,再给一个grade1和grade2表示范围 将学生成绩在这个范围内的学生的name和id输出即可,按照grade降序排序,题目保证所有的grade都不相同 */
const int N=1e5+10;
int n,grade1,grade2;
struct Student{
char name[12],id[12];
int grade;
}stu[N];
bool cmp(Student a,Student b){
return a.grade>b.grade;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%s %s %d",stu[i].name,stu[i].id,&stu[i].grade);
}
scanf("%d %d",&grade1,&grade2);
if(grade1>grade2)swap(grade1,grade2);
sort(stu+1,stu+1+n,cmp);
if(stu[n].grade>grade2||stu[1].grade<grade1)printf("NONE\n");
else{
for(int i=1;i<=n;i++){
if(stu[i].grade>=grade1&&stu[i].grade<=grade2)
printf("%s %s\n",stu[i].name,stu[i].id);
}
}
return 0;
}