写在前面
你好!欢迎来到我的博客,希望我的思路能够帮到你!
问题描述
在选美大奖赛的半决赛现场,有n名选手(2<n<100)参加比赛。比赛结束时,要在现场按照选手的出场顺序宣布最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。如:
选手数量: 7
选手得分: 5,3,4,7,3,5,6
宣布名次: 3,5,4,1,5,3,2
请编程帮助大奖赛组委会完成半决赛的评分排名工作。
输入形式
选手数量:7
选手得分:5 3 4 7 3 5 6
输出形式
选手的排名:3 5 4 1 5 3 2
样例输入
7
5 3 4 7 3 5 6
样例输出
3 5 4 1 5 3 2
样例说明
本题的关键在于如何处理同分数的选手排名问题
解题思路
这道题需要解决的就是同分的排序问题,观察样例我们可知,同分会有一样的排名,但是后面一个分数的排名不会依次向后顺延,那么我们可以设置一个排名,一个已排序人数来解决上面的问题
AC代码
#include<iostream>
#include<algorithm>
using namespace std;
//每一个选手有输入顺序,分数,排名三个变量
struct competitor
{
int num;
int point;
int rank