求救!
查看原帖
求救!
1240580
Chinese_good_FaFa楼主2024/3/25 17:21

站外题目

【问题描述】

在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。 例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名。 请编写一个程序,计算一个选手在这种排名方式之下的名次(分数高的选手排前面)。

【输入文件】

文件第一行为一个整数 ,表示参赛的选手数, ,第二行为 个整数,表示每位选手的成绩,第三行为一个整数 ,表示要查询名次的选手的成绩。

【输出文件】

文件中只有一个整数,表示该选手的名次。

【样例输入】

4 
50 80 50 30 
50 

【样例输出】

2 

我的代码:

#include<bits/stdc++.h>
using namespace std;
int n,a[10000],b; 
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	cin>>b;
	sort(a,a+n);
	for(int i=1;i<n;i++){
		if(a[i]==a[i-1])a[i]=99999;
	}
	sort(a,a+n);
	for(int i=0;i<n;i++){
		if(a[i]==b)cout<<i+1;
	}
	
	return 0;
}

2024/3/25 17:21
加载中...