需求说明:
编写JAVA程序,计算跳水运动员本次动作的最终得分。
规则如下:
在跳水比赛中,共有六位裁判对运动员所完成的动作进行评分,每位裁判的评分在0~10之间,运动员最终的得分规则为:在六位裁判的评分中去掉一个最高分和一个最低分,其余评分之和即为运动员本次动作的最终得分。
实现思路:
定义数组scores,存储所有裁判给出的评分。
定义变量max、min,用于存储最高分和最低分。
定义变量sum,用于存储所有裁判评分之和。
使用for循环实现数组scores的初始化。
使用求最大值和最小值的算法,计算评分中的最高分和最低分,并给变量max和min赋值。
根据运动员最终得分规则,使用循环结构进行所有评分的累加,并减去最高分和最低分,获取运动员最终得分。
实现代码:
使用 Arrays.sort(scores);排序判断最大值最小值,的方法
import java.util.Arrays; import java.util.Scanner; public class GetScoresDemo { public static void main(String[] args) { System.out.println("请输入6位裁判给出的得分:"); Scanner sc = new Scanner(System.in); //定义数组,储蓄6位裁判给出的分数 double[] scores = new double[6]; //通过循环接收用户输入的值(裁判给出的分数) for (int i = 0; i < scores.length; i++) { scores[i] = sc.nextDouble(); } Arrays.sort(scores);//进行排序 double max = scores.length-1;//最高分 double min = scores[0];//最低分 double sum = 0;//最终得分 //省略第一个下标和最后一个下标进行累加求和 for (int i = 1; i < scores.length-1; i++) { sum +=scores[i]; } //所有的数值都得到,进行格式化输出 System.out.printf("去掉一个最高分:%.2f,一个最低分:%.2f\n",max,min); System.out.printf("最终得分:%.2f",sum); } }
定义一个数,进行比较判断最大值最小值的方法:
import java.util.Arrays; import java.util.Scanner; public class GetScoresDemo { public static void main(String[] args) { System.out.println("请输入6位裁判给出的得分:"); Scanner sc = new Scanner(System.in); //定义数组,储蓄6位裁判给出的分数 double[] scores = new double[6]; double max,min;//最高分,最低分 double sum = 0;//最终得分 //通过循环接收用户输入的值(裁判给出的分数) for (int i = 0; i < scores.length; i++) { scores[i] = sc.nextDouble(); } //求最低分和最高分 max = scores[0];//设最高分为第一个下标 min = scores[0];//设最低分为第一个下标 for (int i = 0; i < scores.length; i++) { if(max < scores[i]) max = scores[i]; if(min > scores[i]) min = scores[i]; } //for循环累加求和 for (double item : scores) { sum += item; } sum = sum - max - min; //所有的数值都得到,进行格式化输出 System.out.printf("去掉一个最高分:%.2f,一个最低分:%.2f\n",max,min); System.out.printf("最终得分:%.2f",sum); } }