【PAT甲级】1083 List Grades (25 分)

题意:

输入一个正整数N(<=101),接着输入N个学生的姓名,id和成绩。接着输入两个正整数X,Y(0<=X,Y<=100),逆序输出成绩在x,y之间的学生的姓名和id。

trick:

测试点3格式错误因为输出的所有学生姓名和id后面都要换行,大概如果PAT没说不要输出多余的换行的话,就全都加个换行,说了就不加。。。。。🤔

AAAAAccepted code:

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 typedef struct student{
 5     string name,id;
 6     int grade;
 7 };
 8 student a[107];
 9 bool cmp(student a,student b){
10     return a.grade>b.grade;
11 }
12 int main(){
13     ios::sync_with_stdio(false);
14     cin.tie(NULL);
15     cout.tie(NULL);
16     int n;
17     cin>>n;
18     for(int i=1;i<=n;++i)
19         cin>>a[i].name>>a[i].id>>a[i].grade;
20     int x,y;
21     cin>>x>>y;
22     if(x>y)
23         swap(x,y);
24     sort(a+1,a+1+n,cmp);
25     int flag=0;
26     for(int i=1;i<=n;++i)
27         if(a[i].grade>=x&&a[i].grade<=y){
28             cout<<a[i].name<<" "<<a[i].id<<"\n";
29             flag=1;
30         }
31     if(!flag)
32         cout<<"NONE"<<endl;
33     return 0;
34 }

 

 

 

posted @ 2019-11-17 19:18  sewage  阅读(212)  评论(0编辑  收藏  举报