1 package com_01;
2 /*
3 需求:
4 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的证书分
5 选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分
6 思路:
7 1.定义一个数组,用动态初始化完成数组元素的初始化,长度为6
8 2.键盘录入评委分数
9 3.由于是6个评委打分,所以,接收评委分数的操作,用循环改进
10 4.定义方法实现获取数组中的最高分(数组最大值),调用方法
11 5.定义方法实现获取数组中的最低分(数组最小值),调用方法
12 6.定义方法实现获取数组汇总的所有元素的和(数组元素求和),调用方法
13 7.按照计算规则进行计算得到平均分
14 8.输出平均分
15 */
16
17 import java.util.Scanner;
18
19 public class MyMethodDemo18 {
20 public static void main(String[] args) {
21 //定义一个数组,用动态初始化完成数组元素的初始化,长度为6
22 int[] arr = new int[6];
23
24 //键盘输入评委分数
25 Scanner sc=new Scanner(System.in);
26 //由于是6个评委打分,所以,用循环改进接收评委分数的操纵
27 for(int x=0;x<=arr.length-1;x++){
28 System.out.println("请输入第"+(x+1)+"个评委打分:");
29 arr[x] = sc.nextInt();
30 }
31
32 //定义方法实现获取数组中的最高分(数组最大值),调用方法
33 int max = getMax(arr);
34 //定义方法实现获取数组中的最低分(数组最小值),调用方法
35 int min = getMin(arr);
36 //定义方法实现获取数组汇总的所有元素的和(数组元素求和),调用方法
37 int sum = getSum(arr);
38 //按照计算规则进行计算得到平均分
39 int avg = (sum-max-min)/(arr.length-2);
40 System.out.println(avg);
41
42
43 }
44 /*
45 两个明确:
46 返回类型:int
47 参数:int[] arr
48 */
49 //数组元素求和
50 public static int getSum(int[] arr){
51 int sum = 0;
52 for(int x=0;x<arr.length;x++){
53 sum +=arr[x];
54 }
55 return sum;
56 }
57
58 //获取最大值
59 public static int getMax(int[] arr){
60 int max = arr[0];
61 for(int x=1;x<arr.length;x++){
62 if(arr[x]>max){
63 max = arr[x];
64 }
65 }
66 return max;
67 }
68
69 //获取最小值
70 public static int getMin(int[] arr){
71 int min = arr[0];
72 for(int x=1;x<arr.length;x++){
73 if(arr[x]<min){
74 min = arr[x];
75 }
76 }
77 return min;
78 }
79
80
81
82 //遍历数组
83 public static void printArray(int[] arr){
84 System.out.print("[");
85 for(int x=0;x<arr.length;x++){
86 if(x == arr.length-1){
87 System.out.print(arr[x]);
88 }else{
89 System.out.print(arr[x]+",");
90 }
91 }
92 System.out.println("]");
93 }
94 }