Java算法(六)
评委打分
需求:
在编程竞赛中,有 6 个评委为参赛选手打分,分数为 0 - 100 的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后 的 4个评委的平均值。
- 注意程序的节流
package com.liujintao.judge;import java.util.Scanner;public class JudgeScore {public static void main(String[] args) {double result = handleScore();System.out.println("去掉最高分和最低分,最终得分为;" + result);}/*** 获取评委打分的功能方法*/public static double handleScore () {Scanner sc = new Scanner(System.in);int[] arr = new int[6];// 1、 获取分数for (int i = 0; i < arr.length; i++) {System.out.println("请输入分数:");int score = sc.nextInt();// 判断数据是否合理if (score >= 0 && score <= 100) {arr[i] = score;} else {System.out.println("您输入的分数不合理, 请检查!");i--;}}// 1、调用max方法int max = handleMax(arr);// 2、调用min方法int min = handleMin(arr);// 3、最终将平均值返回出去return getAverage(arr, max, min);}/*** 求和的方法* @param arr* @param max* @param min* @return*/private static double getAverage(int[] arr, int max, int min) {int sum = 0;double average = 0;// 遍历求和for (int i = 0; i < arr.length; i++) {sum += arr[i];}sum = sum - max - min;average = (double)sum / (arr.length - 2);return average;}/*** 求最大值方法* @param arr* @return*/public static int handleMax (int[] arr) {int max = arr[0];for (int i = 1; i < arr.length; i++) {if (max < arr[i]) {max = arr[i];}}return max;}/*** 求最小值方法*/public static int handleMin (int[] arr) {int min = arr[0];for (int i = 1; i < arr.length; i++) {if (min > arr[i]) {min = arr[i];}}return min;}
}
- 反复观看我的方法调用。并不是固定唯一的,但是节流是一定要有的。
运行示例