欲解决此题,我们可以先创建一个二维数组a,用来存取三门的分数,再创建一个一维数组b,用来存取这三门成绩的总分,最后创建一个数组c,用来存取成绩由高到低,你会思考,为什么要创建b和c数组呢,元素不都是总成绩嘛?因为b数组中的索引值可以作为学号的标记,学号等于b数组索引值加一,再通过双层for循环遍历b和c,查找对应的总成绩,并找出语文成绩最高的总分成绩,进行输出,对已经输出的进行赋值为0,表示已经输出,这样就可以做到不会重复的输出相同的成绩,即可完成此题

import java.util.*; public class Main {

public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	int n=sc.nextInt();
	
	int[][] a=new int[n][3];
	int[] b=new int[n];
	for(int i=0;i<n;i++) {
		
		for(int j=0;j<3;j++) {
			a[i][j]=sc.nextInt();
			b[i]=b[i]+a[i][j];
		}
		
	}
	int[] c=new int[n];
	for(int i=0;i<n;i++) {
		c[i]=b[i];
	}
	Arrays.sort(c);
	int temp;
	for(int i=1;i<n;i++) {
		for(int j=0;j<n-i;j++) {
			if(c[j]<c[j+1]) {
				temp=c[j];
				c[j]=c[j+1];
				c[j+1]=temp;
			}
		}
	}
	int yuwen=0;
	
	int v=0;
	for(int i=0;i<5;i++) {
		int max=0;
		for(int j=0;j<n;j++) {
			if(c[i]==b[j] ) {
				yuwen=a[j][0];
				if(yuwen>max) {
					v=j;
					max=yuwen;
				}

				
				
			}
		}
		System.out.println((v+1)+" "+b[v]);
		b[v]=0;
		
	}

}