解题思路
1.创建结构体变量,储存学生的名字和成绩
2.用sort排序和cmp函数将学生成绩按题目要求排序
3.按题目要求倒序输出所有学生的名字和成绩
代码
#include<bits/stdc++.h>
using namespace std;
struct student{
string m;
int s;
}a[25];//结构体变量
bool cmp(student a,student b)
{
if(a.s!=b.s)//分数不一样
{
return a.s>b.s;//分数高的在前
}
else//分数一样
{
return a.m<b.m;//名字字典序小的在前
}
}//对比函数
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].m>>a[i].s;//输入名字和成绩
}
sort(a+1,a+n+1,cmp);//sort排序
for(int i=1;i<=n;i++)
{
cout<<a[i].m<<" "<<a[i].s<<endl;//输出
}
return 0;
}