(一)分析: 1.定义一个数组,用来存储六名评委的打分(0~100) 2.定义一个方法求出数组中最大值。 3.定义一个方法求出数组中最小值。 4.定义一个方法求出总分。 4.(总和-最大-最小)/4. (二)代码实现: package edu.test; import java.util.Scanner; public class Test4 { public static void main(String[] args) { int scores[] = getScore();//接收数组 int max = getMax(scores);//接收最高分 int min = getMin(scores);//接收最低分 int sum = getSum(scores);//接收总分 int avg = (sum - max - min) / (scores.length - 2);//算出最后得分 System.out.println("选手的分数:" + avg); } public static int getSum(int scores[]) {//定义一个方法求出总分。 int sum = 0; for (int o = 0; o < scores.length; o++) { sum = sum + scores[o]; } return sum; } public static int[] getScore() { int scores[] = new int[6];//定义一个数组,用来存储六名评委的打分(0~100) Scanner sc = new Scanner(System.in); for (int i= 0; i < scores.length; ) { System.out.println("请输入评委的打分:"); int score = sc.nextInt(); if (score >= 0 && score <= 100) { scores[i] = score; i++; } else { System.out.println("输入分数范围错误,当前一共有" + i + "个分数"); } } return scores;//将数组返回。 } public static int getMax(int scores[]) {//定义一个方法求出数组中最大值。 int max = scores[0];/*经典算最大值的方法,值得注意的是区分清楚,马虎写成(scores[i]>scores[max])会索引越界报错*/ for (int i= 1; i < scores.length; i++) { if (scores[i] > max) { max = scores[i]; } } return max; } public static int getMin(int scores[]) {//定义一个方法求出数组中最小值。 int min = scores[0]; for (int i = 1; i < scores.length; i++) { if (scores[i] < min) { min = scores[i]; } } return min; } }
结果如下: