11 solutions
-
0
总的来说,这道题挺简单的,但是Wrong了很多次,事实证明对map的理解还不够,最开始用map来做的,又忽视了题意中的如果总成绩相等,按输入顺序排序
不废话了,开始正题吧,总体来说,用结构体来做,就会变得异常简单。
#include<bits/stdc++.h> using namespace std; struct student { string name; int score; string id; }arr[500],temp; int main() { int a,b,m,n; cin>>m; for(int i=0;i<m;i++) { cin>>arr[i].name>>arr[i].score; } for(int i=0;i<m;i++) { for(int j=0;j<m-i;j++) { if(arr[j+1].score>arr[j].score) { temp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp; } } } for(int i=0;i<m;i++) { cout<<arr[i].name<<" "<<arr[i].score<<" "; if(arr[i].score==0) { cout<<"Bad"; } else if(arr[i].score>=1&&arr[i].score<200) { cout<<"Not good"; } else if(arr[i].score>=200&&arr[i].score<300) { cout<<"Bronze medal"; } else if(arr[i].score>=300&&arr[i].score<400) { cout<<"Silver medal"; } else if(arr[i].score>=400) { cout<<"Gold medal"; } cout<<endl; } return 0; }
是不是超级简单了! 不要被一种方法卡死,好好学习,天天向上!
Information
- ID
- 110
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 215
- Accepted
- 79
- Uploaded By