java编程思维训练
案例 评委打分
需求
需求:在唱歌比赛中,有6名评委给选手打分,分数范围是【0-100】的整数。
选手最后得分为:去掉最高分去掉最低分后4个评委的平均分,完成上述过程并计算选手的得分。
public class Test5 {
public static void main(String[] args) {
// 1.定义一个初始化数组,用于后期录入评委的分数;
int[] scores = new int[6];
// 2.录入6个评委的分数
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("请您输入第" + (i + 1) + "个评委的打分。");
int score = sc.nextInt();
//3.把分数存到对应位置
scores[i] = score;
}
//4.遍历数组的每一个位置,求和、找最大值、最小值
double sum = 0;
int max = scores[0];
int min = scores[0];
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
if (max < scores[i]) {
max = scores[i];
}
if (min > scores[i]) {
min = scores[i];
}
}
//5.统计平均分即可
sum = (sum - max - min) / (scores.length - 2);
System.out.println("选手的的得分为" + sum);
}
}
总结
- 数组的求和找最大值最小值可以用一个循环解决;
- 多次输入数据时可以通过for循环来录入。
附加一点见解
如果带.说明是包含关系,比如模板包含类,类里面有方法(例:System.out.print),而Random r这种就是类的具体化,即r为一个对象,说白了还是类。所有使用的对象都是封装好的。