fyx0 2022-10-22 21:49 采纳率: 60%
浏览 85
已结题

输入N个学生的名字和成绩,输出成绩按从高到低排名时,排第k名学生的名字. 如果两个学生分数相等,则名字字典序在前的学生排名在前.

输入N个学生的名字和成绩,输出成绩按从高到低排名时,排第k名学生的名字. 如果两个学生分数相等,则名字字典序在前的学生排名在前

#include
using namespace std;
struct stu
{
char c[30];
int a;
};
int n,m;
stu b[1000];
void a() {
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n - i; j++)
if (b[i].a>b[i + 1].a)
{
swap(b[i],b[i + 1]);
}else if (b[i].a=b[i + 1].a&&b[i+1].c>b[i].c)
swap(b[i],b[i + 1]);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>b[i].c>>b[i].a;
}
a();
cout<<b[m].c;
}

5 3
alice 88
bob 96
carol 95
liming 100
xieyin 96
bob


Process exited after 12.06 seconds with return value 0
请按任意键继续. . .

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月30日
    • 创建了问题 10月22日