首页 > 学院 > 开发设计 > 正文

PAT

2019-11-08 02:51:31
字体:
来源:转载
供稿:网友

List Grades

题目描述

Given a list of N student records with name, ID and grade. You are supposed to sort the records with respect to the grade in non-increasing order, and output those student records of which the grades are in a given interval.

输入描述:

Each input file contains one test case. Each case is given in the following format:

N name[1] ID[1] grade[1] name[2] ID[2] grade[2] … … name[N] ID[N] grade[N] grade1 grade2

where name[i] and ID[i] are strings of no more than 10 characters with no space, grade[i] is an integer in [0, 100], grade1 and grade2 are the boundaries of the grade’s interval. It is guaranteed that all the grades are distinct.

输出描述

For each test case you should output the student records of which the grades are in the given interval [grade1, grade2] and are in non-increasing order. Each student record occupies a line with the student’s name and ID, separated by one space. If there is no student’s grade in that interval, output “NONE” instead.

输入例子:

4 Tom CS000001 59 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 60 100

输出例子:

Mike CS991301 Mary EE990830 Joe Math990112

代码

#include<iostream>#include<algorithm>using namespace std;struct Lnode{ //用结构体比较好做 string name; string number; int grade;};bool cmp(Lnode a,Lnode b){ //结构体的比较函数 return a.grade>b.grade;}int main(){ Lnode person[1000]; int n,count=0; int f,l; cin>>n; for(int i=0;i<n;i++) { cin>>person[i].name>>person[i].number>>person[i].grade; } cin>>f>>l; for(int i=0;i<n;i++) { { person[i].grade=-1; count++; } } sort(person,person+n,cmp); if(count == n) { cout<<"NONE"<<endl; } else{ for(int i=0;i<n;i++){ if(person[i].grade == -1) continue; else{ cout<<person[i].name<<" "<<person[i].number<<endl; } } }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表