問題:某比賽五位評委打分,分數由鍵盤錄入,選手分數的計算規則為:去掉一個最高分,去掉一個最低分,然后計算平均值,所得的平均分為選手最終成績。
import java.util.Scanner; public class Homework02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //評委打分,五位評委打分,分數由鍵盤錄入,去掉一個最高分,去掉一個最低分,然后計算平均值,所得的平均分為選手最終成績 judgesScores(sc); } //評委打分,五位評委打分,分數由鍵盤錄入,去掉一個最高分,去掉一個最低分,然后計算平均值,所得的平均分為選手最終成績 public static void judgesScores(Scanner sc){ int[] score = new int[5]; gradesIn(sc,score); //平均值 double average1 = (scoreAdd(score) - maxNum(score) - minNum(score))/(score.length-2); System.out.println("選手的最終得分是:"+average1); } //成績輸入 public static int[] gradesIn(Scanner sc, int[] score){ System.out.println("請輸入成績:"); for(int i = 0;i < score.length;i++){ int num = sc.nextInt(); score[i] = num; } System.out.println("輸入的成績分別是:"); for(int i = 0;i < score.length;i++){ System.out.print(score[i] + " "); } System.out.println(); return score; } //求成績之和 public static int scoreAdd(int[] score){ int scoreAdd1 = 0; for(int i = 0;i < score.length;i++){ scoreAdd1 += score[i]; } return scoreAdd1; } //求數組中的最大值 public static int maxNum(int[] arr1){ //求最大值 int maxNum1 = arr1[0]; for(int i = 1; i < arr1.length ;i++){ if(arr1[i] > maxNum1){ maxNum1 = arr1[i]; } } return maxNum1; } //求數組中的最小值 public static int minNum(int[] arr1){ //求最小值 int minNum1 = arr1[0]; for(int i = 1; i < arr1.length ;i++){ if(arr1[i] < minNum1){ minNum1 = arr1[i]; } } return minNum1; } }