题目: 在编程竞赛中,有六个评委为参赛选手打分,分数为0-100的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)
(用到数组的遍历,冒泡排序,方法的调用,定义动态数组)
import java.util.Scanner;
public class test{
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[6];
for(int x=0;x<arr.length;x++) {
System.out.println("请输入第"+(x+1)+"个评委打的分数:");
int score = sc.nextInt();
arr[x]=score;
}
//计算总和sum
int sum =0;
for(int i=0;i<arr.length;i++) {
sum=sum+arr[i];
}
int max = getMax(arr);
int min = getMin(arr);
int avg = (sum-min-max)/(arr.length-2);
System.out.println("选手的最终得分是:"+avg);
}
//用数组的形式输出评委的分数
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[arr.length-1]);
}
}
System.out.print("]");
}
//获取数组中的最大值
public static int getMax(int[] arr) {
int max=arr[0];
for(int x=1;x<arr.length;x++) {
if(max<=arr[x]) {
max=arr[x];
}
}
return max;
}
//获取数组中的最小值
public static int getMin(int[] arr) {
int min = arr[0];
for(int x=1;x<arr.length;x++) {
if(min>arr[x]) {
min = arr[x];
}
}
return min;
}
}
运行结果是:
请输入第1个评委打的分数:
20
请输入第2个评委打的分数:
50
请输入第3个评委打的分数:
91
请输入第4个评委打的分数:
60
请输入第5个评委打的分数:
50
请输入第6个评委打的分数:
30
选手的最终得分是:47