随机平均数在Java中不工作

问题描述 投票:1回答:1

我需要找到随机数(1-9)的平均数,然后找到高于平均数的随机数的数量。

我找到了平均数,并试图找到高于平均数的数量,但它一直给我错误的答案。


public class AverageRandom{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("n? ");
        int amount = sc.nextInt();

        Random randNo = new Random();
        double sum = 0;
        int max = 9;
        double average = 0;
        int above;
        above = 0;

        for(int i = 0; i < amount; i++){
            int next = randNo.nextInt(max) +1;
            System.out.print(next + " ");

            sum += next;
            average = sum/amount;

            if(next > average){
                above++;
            }
        }

        System.out.println("\nAverage = " + average);
        System.out.print("Number of values above the average = " + above + "\n");
    }
}

java average
1个回答
0
投票

你可以使用2个循环和一个数组来存储值。

public class AverageRandom{
 public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    System.out.print("n? ");
    int amount = sc.nextInt();

    Random randNo = new Random();
    double sum = 0;
    int max = 9;
    double average = 0;

    int[] array = new int[amount]; // define an array of size 'amount'

    for(int i = 0; i < amount; i++) {
        array[i] = randNo.nextInt(max) + 1; // fill the array

        System.out.print(array[i] + " ");

        sum += array[i];
    }
    average = sum/array.length; // you can also calculate the average inside the loop

    int above = 0;

    for(int i = 0; i < array.length; i++) { // iterate the array (your random values)
        if(array[i] > average){
            above++;
        }
    }

    System.out.println("\nAverage = " + average);
    System.out.print("Number of values above the average = " + above + "\n");
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.