题目描述
给定一个包含 N 名学生的姓名,ID,成绩的列表。
请你将表单按照学生成绩由高到低进行排序,并输出成绩在给定间隔内的所有学生信息。
样例
输入样例1:
4
Tom CS000001 59
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
60 100
输出样例1:
Mike CS991301
Mary EE990830
Joe Math990112
C++ 代码
把数据先排序,在判断一遍是否在区间内,在输出就好了
卑微,只会用暴力算法
#include<iostream>
#include<algorithm>
using namespace std;
struct student
{
string a,b;
int c;
};
student a[110];
int main()
{
int n,g1,g2,b[110],k=0;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i].a>>a[i].b>>a[i].c,b[i]=a[i].c;
sort(b,b+n);//排序,方便输出
cin>>g1>>g2;
for(int i=n-1;i>=0;i--)//每个数据都判断一遍
{
if(b[i]>=g1&&b[i]<=g2)//判断是否在区间内
{
for(int j=0;j<n;j++)
if(a[j].c==b[i])//判断数据是否相等
{
cout<<a[j].a<<" "<<a[j].b<<endl;
k=1;//有输出
break;
}
}
}
if(!k) cout<<"NONE";//如果无输出,则输出“NONE”
}