Java 计算最小值和最大值并删除它们

Java 计算最小值和最大值并删除它们,java,Java,因此,对于我的项目,这就是我在跳水运动中需要做的,七位评委会给出一个介于0到10之间的分数,每个分数可能是一个浮点值。最高和最低分数将被剔除,其余分数相加。然后将总和乘以该跳水的难度。难度从1.2分到4.8分不等。然后将总数乘以0.6,以确定潜水员的得分 编写一个程序,提示用户难度和七名裁判的分数,并输出该跳水的总分数。程序应该使用一个数组来存储这七个分数。程序还应确保所有输入都在允许的数据范围内 样本输出: 输入跳水难度(1.2-4.8):7.3 无效的困难。请重新输入:1.5 输入每位裁判的

因此,对于我的项目,这就是我在跳水运动中需要做的,七位评委会给出一个介于0到10之间的分数,每个分数可能是一个浮点值。最高和最低分数将被剔除,其余分数相加。然后将总和乘以该跳水的难度。难度从1.2分到4.8分不等。然后将总数乘以0.6,以确定潜水员的得分

编写一个程序,提示用户难度和七名裁判的分数,并输出该跳水的总分数。程序应该使用一个数组来存储这七个分数。程序还应确保所有输入都在允许的数据范围内

样本输出:

输入跳水难度(1.2-4.8):7.3

无效的困难。请重新输入:1.5

输入每位裁判的分数(0.0-10.0):

为裁判输入分数1:12.3

无效分数。请重新输入:14.5

无效分数。请重新输入:8

为裁判输入分数2:7.5

为裁判输入分数3:8.5

为裁判输入分数4:8

为裁判输入分数5:7

为裁判输入分数6:8

为裁判输入分数7:7.5

跳水得分为35.1分

我一直坚持的是如何得到一个代码,它将自动取出最小值和最大值

import java.util.Random;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {


        Random rng = new Random();

        int[] values = new int[1000];
        // Fill it up
        for (int i = 0; i < values.length; i++) {
            values[i] = rng.nextInt(100);
        }

        // Find min
        /*int indexOfMin = 0;
        int indexOfMax = 0;
        for (int i = 0; i < values.length; i++) {
            if(values[i] < values[indexOfMin]) {
            indexOfMin = i;
            }
            if (values[i] > values[indexOfMax]) {
                indexOfMax = i;
            }
        }
        System.out.println("Minimum is at index " + indexOfMin + " with         value " + values[indexOfMin]);      
    System.out.println("Maximum is at index " + indexOfMax + " with value " + values[indexOfMax]);      
     */

    double[] difficulty = new double[1];
    Scanner keyboard = new Scanner(System.in);
    for (int d = 0; d < difficulty.length; d++) {
        System.out.println(" Enter Difficulty " + d + ":" );
        difficulty[d] = keyboard.nextDouble();

        while (difficulty[d] < 1.2 || difficulty[d] > 4.8) {
            System.out.println(" Bad value. Try again: ");;
            difficulty[d] = keyboard.nextDouble();
        }

        Scanner keyboard1 = new Scanner(System.in);
            double[] scores = new double[7];
            for (int i = 0; i < scores.length; i++) {
                System.out.println(" Enter score " + i + ":" );
                scores[i] = keyboard1.nextDouble();

                while (scores[i] < 0.0 || scores[i] > 10.0) {
                    System.out.println(" Bad value. Try again: ");;
                    scores[i] = keyboard1.nextDouble();


                }
            }
        }
    }
}
import java.util.Random;
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
随机rng=新随机();
int[]值=新的int[1000];
//加满
对于(int i=0;i值[indexOfMax]){
indexOfMax=i;
}
}
System.out.println(“最小值在索引“+indexOfMin+”处,值为“+values[indexOfMin]);
System.out.println(“最大值在索引“+indexOfMax+”处,值为“+values[indexOfMax]);
*/
双[]难度=新双[1];
扫描仪键盘=新扫描仪(System.in);
for(int d=0;d4.8){
System.out.println(“值不正确。请重试:”);;
难度[d]=键盘.nextDouble();
}
扫描仪键盘1=新扫描仪(System.in);
双[]分=新双[7];
for(int i=0;i10.0){
System.out.println(“值不正确。请重试:”);;
分数[i]=键盘1.nextDouble();
}
}
}
}
}

indecOfMin和indexOfMax//不在代码中,因为我认为我的代码有误,或者它不适用于/帮助此项目

您可以对值数组进行排序,然后从数组的一端取最大值,从另一端取最小值

对于排序,可以使用气泡排序:

public double[] bubbleSort(double[] array) {
    int numberOfItems = array.length;

    for (int pass=1; pass != numberOfItems; pass++) {
        for (int index=0; index != numberOfItems-pass; index++) {
            if (array[index] < array[index+1]) {
               temp = array[index];
               array[index] = array[index+1];
               array[index+1] = temp;
            }
        }
    }
    return array;
}

您可能需要进行一些小的更改才能将其实现到您自己的代码中。

为什么不检查代码是否正确?从逻辑上看,我没有发现任何问题,因为它与问题无关。这不是正确的代码。它只是吐出一些与用户输入无关的随机数“我一直坚持的是如何得到一个能自动取出最小值和最大值的代码”,所讨论的最小值和最大值功能如何与问题无关?它是随机的,因为你是在一个随机的数组上做的,只需要在你的输入项上使用它就可以了。我不知道怎么做,虽然我为你调整了答案
int maxIndex = array.length - 1;
double max = array[maxIndex];
double min = array[0];