案例:评委打分
需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。
思路:
1.定义一个数组,用动态初始化完成数组元素的初始化,长度为6
2.键盘录入评委分数
3.由于是6个评委打分,所以,接收评委分数的操作,用循环改进
4.定义方法实现获取数组中的最高分(数组最大值),调用方法
5.定义方法实现获取数组中的最低分(数组最小值),调用方法
6.定义方法实现获取数组中的所有元素的和(数组元素求和),调用方法
7.按照计算规则进行计算得到平均分
8.输出平均分
import java.util.Scanner;
public class {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner sc = new Scanner(System.in);
for (int x = 0; x < arr.length; x++) {
System.out.println("请输入第" + (x + 1) + "个评委的打分:");
arr[x] = sc.nextInt();
}
int max = getmax(arr);
int min = getmin(arr);
int sum=getsum(arr);
int avage=(sum-min-max)/(arr.length-2);
printArray(arr);
System.out.println("max=" + max);
System.out.println("min=" + min);
System.out.println("sum=" + sum);
System.out.println("选手的最终:"+avage);
}
public static int getmax(int[] arr) {
int i;
int max = arr[0];
for (i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
public static int getmin(int[] arr) {
int x;
int min = arr[0];
for (x = 0; x < arr.length; x++) {
if (arr[x] < min) {
min = arr[x];
}
}
return min;
}
public static int getsum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
public static void printArray(int[] arr) {
System.out.print("[");
for (int x = 0; x < arr.length; x++) {
if (x == arr.length - 1) {
System.out.print(arr[x]);
} else {
System.out.print(arr[x] + ",");
}
}
System.out.println("]");
}
}