在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。
例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名。
请编写一个程序,计算每个选手在这种排名方式之下的名次(分数高的选手排前面)。
输入格式
第一行为一个整数n,表示参赛的选手数,1<=n<=1000,第二行为n个整数,表示每位选手的成绩。
输出格式
一行,表示每位选手的名次。
输入样例
4
50 80 50 30
输出样例
2 1 2 4
谁能把下面那个程序改成符合题意的?
#include<bits/stdc++.h>
using namespace std;
int a,b[1000],c;
int main()
{
cin>>a;
for(int i=1;i<=a;i++)
cin>>b[i];
cin>>c;
for(int i=1;i<=a;i++)
for(int j=i;j<=a;j++)
if(b[i]<b[j])
swap(b[i],b[j]);
for(int i=1;i<=a;i++)
{
if(b[i]==c)
{
cout<<i;
return 0;
}
}
exit;
}