【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 }
保持热爱 不懈努力
不试试看怎么知道会失败呢(划掉)
世上无难事 只要肯放弃(划掉)