1004. 成绩排名 (20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:每个测试输入包含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.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name=null;
String id=null;
int result=0;
int num=scanner.nextInt();
List<Student> list = new ArrayList<>();
for (int i = 0; i < num; i++) {
name=scanner.next();
id=scanner.next();
result=scanner.nextInt();
list.add(new Student(name,id,result));
}
Collections.sort(list,new SortByResult());
System.out.println(list.get(0).getName()+" "+list.get(0).getId());
System.out.println(list.get(list.size()-1).getName()+" "+list.get(list.size()-1).getId());
}
}
class Student{
private String name;
private String id;
private int result;
public Student(String name,String id,int result){
this.name=name;
this.id=id;
this.result=result;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public int getResult() {
return result;
}
}
class SortByResult implements Comparator<Student>{
@Override
public int compare(Student o1, Student o2) {
if(o1.getResult()>o2.getResult()){
return -1;
}else if(o1.getResult()<o2.getResult()){
return 1;
}
return 0;
}
}
本文介绍了一个使用Java实现的学生成绩排名程序。该程序通过读取学生姓名、学号及成绩,找出成绩最高和最低的学生,并输出相关信息。采用列表存储学生数据,并利用自定义比较器对学生按成绩进行排序。
458

被折叠的 条评论
为什么被折叠?



