1004 成绩排名
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:
每个测试输入包含 1 个测试用例,格式为
第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
… …
第 n+1 行:第 n 个学生的姓名 学号 成绩
其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100
之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:
对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。
输入样例:
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
输出样例:
Mike CS991301
Joe Math990112
代码实现
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 创建一个存储 student 对象的列表
List<student> stuList = new ArrayList<>();
for (int i = 0; i < n; i++) {
student stu = new student();
stu.setName(sc.next());
stu.setId(sc.next());
stu.setScore(sc.nextInt());
// 将每个 student 对象存储到列表中
stuList.add(stu);
}
int[] scoreLine = new int[n];
for(int i = 0 ; i < n ; i++){
scoreLine[i] = stuList.get(i).getScore();
}
System.out.println(stuList.get(getMaxIndex(scoreLine)).getName()+" "+stuList.get(getMaxIndex(scoreLine)).getId());
System.out.println(stuList.get(getMinIndex(scoreLine)).getName()+" "+stuList.get(getMinIndex(scoreLine)).getId());
}
public static int getMaxIndex(int[] arr) {
int maxIndex = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
return maxIndex;
}
public static int getMinIndex(int[] arr) {
int minIndex = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
return minIndex;
}
}
class student {
private String name;
private String id;
private int score;
public void setName(String name) {
if (name.length() <= 10 && name.length() >= 1) {
this.name = name;
} else {
return;
}
}
public void setId(String id) {
if (id.length() <= 10 && id.length() >= 1) {
this.id = id;
} else {
return;
}
}
public void setScore(int score) {
if (score >= 0 && score <= 100) {
this.score = score;
} else {
return;
}
}
public int getScore() {
return score;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
}