需求;
在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]
之间的整数。选手的最后得分为;去掉最高分、最低分后的4个评委
的平均分,请完成上述的过程并计算选手的得分。
public static void main(String[] args){
//1.定义一个数组,用来存6名评委的打分(1-100)
int[] scoreArr = getScores();
for(int i = 0;i < scoreArr.length;i++){
System.out.println(scoreArr[i]);
}
//2.求出数组中的最大值
int max = getMax(scoreArr);
//3.求出数组中的最小值
int min = getMin(scoreArr);
//4.求出数组中6个分数的总和
int sum = getSum(scoreArr);
//5.(总和 - 最大值 - 最小值)/4
int average = (sum - max - min)/(scoreArr.length-2);
//打印结果
System.out.println("选手的的最终得分为;" + average);
}
public static int getSum(int [] scoreArr){
int sum = 0;
for(int i =0;i < scoreArr.length;i++){
sum = sum + scoreArr[i];
}
return sum;
}
//求数组的最大值
public static int getMax(int [] scoreArr){
int max = scoreArr[0];
for(int i =0;i < scoreArr.length;i++){
if(scoreArr[i] > max){
max = scoreArr[i];
}
}
return max;
}
//求数组的最小值
public static int getMin(int[] scoreArr){
int min = scoreArr[0];
for(int i =0;i < scoreArr.length;i++){
if(scoreArr[i] < min){
min = scoreArr[i];
}
}
return min;
}
//1.我要干嘛? 定义一个数组,用来存储6名评委的打分(0-100)
//2.我需要什么?都不需要
//干完这件事情,是否需要返回?是否返回
public static int []getScores(){
//定义数组
int [] scores = new int[6];
//使用键盘录入的形式,输入分数 0-100
Scanner sc =new Scanner(System.in);
for(int i =0; i < scores.length;){
System.out.println("请输入评委的打分");
int score = sc.nextInt();//120
if(score >=0 && score <= 100) {
scores[i] = score;
i++;
}else{
System.out.println("成绩超出了范围,继续录入,当前的i为;" + i );
}
}
return scores;
}
新手老铁们这个练习还是有些难,大家需要多练习几遍;
大家可以跟据以下步骤进行练习
1.定义一个数组,用来存6名评委的打分(1-100)
2.求出数组中的最大值
3.求出数组中的最小值
4.求出数组中6个分数的总和
5.(总和 - 最大值 - 最小值)/4
求数组的最大值
求数组的最小值