解题思路:

注意事项:

参考代码:

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		String count[]=new String[n];//学号+名字
		int sum[]=new int[n];//三科成绩总分
		int avg[]=new int[n];//计算平均成绩
		String num[]=new String[n];
		String name[]=new String[n];
		int chinese[]=new int[n];
		int math[]=new int[n];
		int English[]=new int[n];
		for(int i=0;i<n;i++) {
			num[i]=in.next();
			name[i]=in.next();
			chinese[i]=in.nextInt();
			math[i]=in.nextInt();
			English[i]=in.nextInt();
		}
		for(int i=0;i<n;i++) {
			count[i]=num[i]+" "+name[i];
			sum[i]=chinese[i]+math[i]+English[i];
		}
		for(int i=0;i<n;i++) {
			avg[i]=sum[i]/3;
		}
//		计算各功课平均成绩
//		chinese、math、English
		int chinese_avg=0;
		int math_avg=0;
		int English_avg=0;
		for(int i=0;i<n;i++) {
			chinese_avg+=chinese[i];
			math_avg+=math[i];
			English_avg+=English[i];
		}
		System.out.println(chinese_avg/n+" "+math_avg/n+" "+English_avg/n);

		//max储存最高分的学生的平均成绩
		int max=avg[0];
		for(int i=0;i<n;i++) {
			if(max<avg[i]) {
				max=avg[i];
		}
	}
//		映射(名字+学号:所有成绩)
		String score[]=new String[n];
		Map<String,String> map2=new HashMap<String, String>();
		for(int i=0;i<n;i++) {
			score[i]=(chinese[i]+" "+math[i]+" "+English[i]).toString();
			map2.put(count[i],score[i]);
		}
		String result="";
//		最高所有成绩
		for(int i=0;i<n;i++) {
			if(max==avg[i]) {
				result=(chinese[i]+" "+math[i]+" "+English[i]).toString();
			}
		}
		for(int i=0;i<n;i++) {
			if(map2.get(count[i]).equals(result)) {
				System.out.println(count[i]+" "+result);
			}
		}
	}
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论