Случайное среднее число не работает в Java - PullRequest
2 голосов
/ 05 мая 2020

Мне нужно найти среднее значение случайных чисел (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");
    }
}

1 Ответ

0 голосов
/ 05 мая 2020

вы можете использовать 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");
 }
}
...