案例:评委打分
需求:
在比赛中,有6个评委为参赛选手打分,分数为0-100之间的整数分。
选手的最后得分为:去掉一个最高分和一个最低分后的四个评委的平均值(不考虑小数部分)。
思路
1.定义一个数组,用动态初始化完成数组元素的初始化,长度为6
2.键盘录入评委分数
3.由于是6个评委打分,所以接受评委的操作用循环改进
4.定义方法实现获取最高分,调用方法
5.定义方法实现获取最低分,调用方法
6.定义方法实现所有分数的求和,调用方法
7.按照计算规则计算得到平均分(不考虑小数部分)
8.输出平均分
代码
package com.itheima_01;
import java.util.Scanner;
public abstract class Test {
public static void main(String[] args) {
int[] arr = new int[6];
Scanner sc = new Scanner(System.in);
/* System.out.println("请输入第1个评委打分的分数:");
arr[0] = sc.nextInt();
System.out.println("请输入第2个评委打分的分数:");
arr[1] = sc.nextInt();
System.out.println("请输入第3个评委打分的分数:");
arr[2] = sc.nextInt();
System.out.println("请输入第4个评委打分的分数:");
arr[3] = sc.nextInt();
System.out.println("请输入第5个评委打分的分数:");
arr[4] = sc.nextInt();
System.out.println("请输入第6个评委打分的分数:");
arr[5] = sc.nextInt();*/
for (int i = 0; i < 6; i++) {
System.out.println("请输入第" + (i + 1) + "个评委打分的分数:");
int s = sc.nextInt();
if (s >= 0 && s <= 100) {
arr[i] = s;
} else {
System.out.println("你输入的评委分数不符合规范,应当输入0~100之间的整数,请重新输入!");
i--;
}
}
int sum = sum(arr);
int max = max(arr);
int min = min(arr);
int end = sum - max - min;
int avg = end / 4;
System.out.println("最后的平均分是:" + avg);
}
public static int max(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] < arr[i + 1]) {
max = arr[i + 1];
}
}
return max;
}
public static int min(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] > arr[i + 1]) {
min = arr[i + 1];
}
}
return min;
}
public static int sum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
}
程序运行结果
step1:输入评委打分
step:获取平均分