2356:允许并列的排名
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
1
提交:5
解决:4
题目描述
在我们参加的各种竞赛中,允许并列的排名方式是经常遇到的。
例如有四名选手的成绩分别为50、80、50、30分,则80分的选手为第一名,50分的两名选手均为第二名,30分的选手为第四名。
请编写一个程序,计算一个选手在这种排名方式之下的名次(分数高的选手排前面)。
输入
第一行为一个整数,表示参赛的选手数,,第二行为个整数,表示每位选手的成绩,第三行为一个整数,表示要查询名次的选手的成绩。
输出
只有一个整数,表示该选手的名次。
样例输入
4
50 80 50 30
50
样例输出
2
提示
加入想要针对a[1] - a[n]排序
那么sort(a + 1, a + n + 1); 这样能取得一个从小到大排序后的顺序 a[1] <= a[2] <= 。。。 << a[n];
那么我怎么从大到小排序呢?
那么sort(a + 1, a + n + 1); 这样能取得一个从小到大排序后的顺序 a[1] <= a[2] <= 。。。 << a[n];
那么我怎么从大到小排序呢?
这里要写一个bool函数:
bool cmp(int a, int b) { //这个模板一定要会写嗷
return a > b;
}
int main() {
前面一堆代码;
sort(a + 1, a + n + 1, cmp); // 按照cmp规则排序
for(int i = 1; i <= n; i++) // a[1] 最大 a[n] 最小
。。。。。
return 0;
}