给出n个学生的姓名和成绩,请将他们按照分数降序排列,如果分数相同,先列出的排在前面。
第一行一个整数n 接下来n行,每行包含姓名和成绩
n行,每行包含姓名和成绩
5
关云长 90
张翼德 91
赵子龙 98
马孟起 94
黄汉升 98
赵子龙 98
黄汉升 98
马孟起 94
张翼德 91
关云长 90
0<n<100,名字长度<20,分数<100
只有90分,一直不过,团队作业没题解
求助
#include<bits/stdc++.h>
#include
#include
using namespace std;
struct p{
string n;
int b;
}a[1100];
int main()
{ int m;
cin>>m;
for(int i=1;i<=m;{
cin>>a[i].n>>a[i].b;
}
for(int i=1;i<m;i++){
int k=i;
for(int j=i;j<=m;j++){
if(a[j].b>a[k].b)k=j;
}
swap(a[i].n,a[k].n);
swap(a[i].b,a[k].b);
} for(int i=1;i<=m;i++){
cout<<a[i].n<<' '<<a[i].b<<endl;
}
return 0;
}
格式不好,将就看
你们提意见,我改