并列排名


并列排名


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

输入

第一行为一个整数N(1<=N<=100),表示参赛的选手数,第二行为N个整数,
表示每位选手的成绩,第三行为一个整数m,表示要查询名次的选手的成绩。

输出

输出一个整数,表示该选手的名次。

样例输入

4
50 80 50 30
50

样例输出

2

源代码(注意一艘多组):

#include<stdio.h>
int main() {
	int n,i,j,k,a[101],b[101],m,t;
	while(scanf("%d",&n)!=EOF) {
		for(i=0; i<n; i++) scanf("%d",&a[i]);
		scanf("%d",&m);
		for(i=0; i<n-1; i++)
			for(j=0; j<n-1-i; j++)
				if(a[j]>a[j+1]) {
					t=a[j];
					a[j]=a[j+1];
					a[j+1]=t;
				}
		for(i=0; i<n; i++) b[i]=a[n-i-1];
		for(i=0; i<n; i++)
			if(m==b[i]) {
				printf("%d\n",i+1);
				break;
			}
	}
	return 0;
}

AC


发布了50 篇原创文章 · 获赞 51 · 访问量 1424

猜你喜欢

转载自blog.csdn.net/m0_45682806/article/details/103333618