用java写数 样例输入 复制 5 1 张三 90 2 李四 80 3 王五 70 4 赵六 60 5 田七 50 样例输出 复制 A:1 B:2 C:1 D:1
时间: 2024-03-14 17:48:26 浏览: 49
以下是Java的实现代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
String[] names = new String[n];
int[] scores = new int[n];
for (int i = 0; i < n; i++) {
int id = scanner.nextInt();
names[i] = scanner.next();
scores[i] = scanner.nextInt();
if (id == k) {
k = i; // 记录下 k 值对应的下标
}
}
int count = 0;
for (int i = 0; i < n; i++) {
if (scores[i] > scores[k] || (scores[i] == scores[k] && i < k)) {
count++;
}
}
System.out.print("A:" + count + " ");
count = 0;
for (int i = 0; i < n; i++) {
if (scores[i] == scores[k] && i != k) {
count++;
}
}
System.out.print("B:" + (count + 1) + " ");
count = 0;
for (int i = 0; i < n; i++) {
if (scores[i] > scores[k]) {
count++;
}
}
System.out.print("C:" + (count + 1) + " ");
count = 0;
for (int i = 0; i < n; i++) {
if (scores[i] == scores[k] && i > k) {
count++;
}
}
System.out.print("D:" + (count + 1));
}
}
```
首先,我们读入两个整数n和k,表示参赛人数和要查询的选手编号。然后,我们用两个数组分别记录参赛者的姓名和成绩,并在读入数据的过程中找到要查询的选手对应的下标k。接着,我们分别计算出A、B、C、D四项的排名。A项是比选手成绩高的人数;B项是和选手成绩相同但排名比选手高的人数加1;C项是比选手成绩高的人数加1;D项是和选手成绩相同但排名比选手低的人数加1。最后,我们按照题目要求输出结果。
阅读全文