Do-while или цикл while для использования math.random для генерации набора из 20 чисел

#java

#java

Вопрос:

То, что я пытаюсь сделать, это сгенерировать набор из 20 различных случайных чисел, затем отобразить среднее значение, количество положительных чисел и количество отрицательных чисел. Я зашел в тупик при генерации набора чисел для использования, но я думаю, что все остальное я сделал правильно.

 int positive = 0;
int negative = 0;
int count = 0;
int total = 0;
int average;


Random r = new Random();
int number = 0;


 while (count > 20) {
    number = r.nextInt(200);
    total  = number;
    count  ;
    if (number > 0) {
        positive  ;
    } 
    else if (number < 0) {
        negative  ;
    }
}
average = (double) total / count;
System.out.println("The number of positives is "   positive   " ");
System.out.println("The number of negatives is "   negative   " ");
System.out.printf("The average is: "   average);
  

Комментарии:

1. while ((number = r.nextInt(150)-67) != 0) как это предположить, чтобы узнать, когда остановиться на 20?r

2. Чего вы ожидаете while (count >= 66) от выполнения?

3. я вижу вашу правку… почему бы и нет, давайте попробуем… while(count < 60)

4. Я не уверен, работает ли это, потому что он не захватывает более 1 положительного или отрицательного числа.

Ответ №1:

Вот способ для вас составить 20 случайных чисел от 0 до 100, а затем отобразить результат.

 private int total = 0;
private int i = 0;
private Random generator = new Random();
private int pos = 0;
private int neg = 0;
private int max_int = Integer.MIN_VALUE;
private int min_int = Integer.MAX_VALUE;
private int x;    

while(i < 20){
    x = (int) int val = 100 - generator.nextInt(200);

    if(x > max_int)
        max_int = x;
    if(x < min_int)
        min_int = x;

    if(x >= 0)
        pos   ;
    else 
        neg   ;

    total  = x
    i  ;
}

System.out.println(total / 20.0);
System.out.println("Positive number count :: "   pos);
System.out.println("Positive number count :: "   neg);
System.out.println("Max :: "   max_int);
System.out.println("Min :: "   min_int);
  

Комментарии:

1. Когда я запускаю его, я получаю

2. ‘code’ 6.35 Количество положительных значений равно 1, Количество отрицательных значений равно 0, Наибольшее число равно: 0. И наименьшее число равно: 0. Среднее значение равно: Бесконечность

3. Спасибо, что помогли мне понять это, и, кстати, как насчет добавления значений min и max со средними значениями для обоих? Моя идея такова ‘ if (x> max) { max = x; averageMax = max / положительный; } if (x < min) { min = x; averageMin = min / отрицательный; } }’

4. я не знаю, что вы подразумеваете под средними значениями для max и min, но я обновил код, чтобы в нем были max и min. Если это отвечает на ваш вопрос, пожалуйста, примите ответ

5. Среднее значение для набора отрицательных и положительных чисел — это то, что я пытался сказать.