题目:
第一行输入 一个 int 为n个学生
接下来n行输入学生的语数英成绩
将成绩前五的前五的学生 打印出 学号和总分
# 若总分相同则按语文排,若语文相同按学号排
样例输入:
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
输出:
6 265
4 264
3 258
2 244
1 237
import java.util.*;
import java.math.*;
public class Main {
public static class student implements Comparable<student>{//实现Comparable接口,<>里写类的名字
int zong; //总分
int yuwen; //语文
int xuehao; //学号
public student(int zong, int yuwen, int xuehao) {//初始化
this.xuehao = xuehao;
this.yuwen = yuwen;
this.zong = zong;
}
@Override
public int compareTo(student s) {//重写compareTo函数:最多三次比较
if(s.zong != this.zong)
return Double.compare(s.zong, this.zong);
else {
if(s.yuwen != this.yuwen) {
return Double.compare(s.yuwen, this.yuwen);
}else {
return Double.compare(this.xuehao,s.xuehao);
}
}
}
@Override
public String toString() {//重写toString函数
return xuehao + " " + zong;
}
}
public static void main(String[]args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
student[] ss = new student[n];
for(int i = 0 ; i < n ; ++ i) {
int yu = in.nextInt();
int shu = in.nextInt(), ying = in.nextInt();
int zong = yu + shu + ying;
ss[i] = new student(zong, yu, i + 1);
}
Arrays.sort(ss);
for(int i = 0 ; i < 5 ; ++ i) {
System.out.println(ss[i]);
}
}
}