import java.util.Scanner; class Main { public static void main(String[] args) { int []scores = getScores(); for (int i = 0; i < scores.length; i++) { System.out.println(scores[i]); } int maxScore = maxSocre(scores); System.out.println("最大值:"+maxScore); int minScore = minScore(scores); System.out.println("最xiao值:"+minScore); int sumScore = sum(scores); int sumScores=sumScore-maxScore-minScore; double averageScores =(double) sumScores/(scores.length-2);/*尽量写长度-2.方便以后代码修改*/ System.out.println(averageScores); } public static int sum(int []scores){ int sum = 0; for (int i = 0; i < scores.length; i++) { sum = sum+scores[i]; } return sum; } /*变量的批量修改:Shift+F6*/ /*求最小值*/ public static int minScore(int []scores){ int min = scores[0]; for (int i = 1; i < scores.length; i++) { if(min>scores[i]) { min =scores[i]; } } return min; } /*求最大值*/ public static int maxSocre(int []scores) { int max = scores[0]; for (int i = 1; i < scores.length; i++) { if (scores[i] > max) { max=scores[i]; } } return max; } /*分析:1.定义一个数组,用来储存6名评委的打分 2.求出在最高分 3.求出最低分 4.计算总和 5.总和-最大值-最小值*/ //因为部分比较多,所以用方法的形式来实现 /*我们需要干嘛?定义一个数组,用来存储6名评委的打分(0~100) 2.我需要什么,都不需要 3.干完这件事,是否需要返回值?必须返回*/ public static int[] getScores(){ int[] arr=new int[6]; Scanner sc = new Scanner(System.in); for (int i = 0; i < arr.length;) /*此处条件控制语句应该放循环里面,不然i会自动加1,也就索引不到0.1.2。。。。了*/ { System.out.println("请输入成绩:"); int score = sc.nextInt(); if(score>=1&&score<=100){ arr[i] = score; i++; } } return arr; } }