时间限制: 1.000 Sec 内存限制: 16 MB
提交: 12069 解决: 6059
[命题人:][下载数据: 70]
提交状态报告
题目描述
在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。 例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名。 请编写一个程序,计算一个选手在这种排名方式之下的名次(分数高的选手排前面)。
输入
第一行为一个整数 N,表示参赛的选手数,1<=N<=100; 第二行为N个整数,表示每位选手的成绩; 第三行为一个整数m,表示要查询名次的选手的成绩。
输出
只有一个整数,表示该选手的名次。
样例
输入 复制
4 50 80 50 30 50
输出 复制
2
来源/分类
#include <bits/stdc++.h> using namespace std; int main() { int n,b=0,m; cin>>n; int a[n]; for(int i=0;i<n;i++) { cin>>a[i]; } for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(a[i]<a[j]) swap(a[i],a[j]); } }cin>>m; for(int i=0;i<n;i++) { if(a[i]==m) { b=i+1; break; } }cout<<b; return 0; }