Как читать Ints как массив и выводить MinMax - PullRequest
0 голосов
/ 25 февраля 2019

В настоящее время пытаюсь вывести Min и Max из 25 чисел, введенных с клавиатуры, хотя у меня возникают проблемы в классе Scanner, чтобы иметь возможность вводить упомянутые числа.Я получаю сообщение об ошибке, потому что не могу сделать Int [] для Int.

. Вот вопрос:

(MinMax.java). Считать в 25 дюймов с клавиатуры и сохранитьих в массиве.Найдите максимальные и минимальные значения в массиве и отобразите их на экране.

Вот мой текущий код:

import java.util.Scanner;
import java.util.Arrays;
public class MinMax{

    public static void main (String args[]){

        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter 25 numbers.");
        int[] numbers = sc.nextInt();

        System.out.println("Minimum Value = " + getMinValue(numbers));
        System.out.println("Maximum Value = " + getMaxValue(numbers));  
    }

    public static int getMaxValue(int[] numbers) {
        int maxValue = numbers[0];
        for(int i=1;i<numbers.length;i++){
            if(numbers[i] > maxValue){
                maxValue = numbers[i];
            }
        }
        return maxValue;
    }

    //Find minimum (lowest) value in array using loop
    public static int getMinValue(int[] numbers){
        int minValue = numbers[0];
        for(int i=1;i<numbers.length;i++){
            if(numbers[i] < minValue){
                minValue = numbers[i];
            }
        }
        return minValue;
    }
}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Проблема - ваша основная функция.Просто сделайте это:

public static void main (String args[]) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Please enter 25 numbers.");
    int[] numbers = new int[25];
    for (int i = 0; i < 25; i++) {
        System.out.print("Number " + (i+1) + ": ");
        numbers[i] = sc.nextInt();
    }

    System.out.println("Minimum Value = " + getMinValue(numbers));
    System.out.println("Maximum Value = " + getMaxValue(numbers));
}
0 голосов
/ 25 февраля 2019

Вы не можете сделать это:

int[] numbers = sc.nextInt();

Это потому, что sc.nextInt() возвращает int, а не массив int с.

Вместо этого вам нужно создатьцикл, который читает 25 целых чисел:

int[] numbers = new int[25];
for(int i = 0; i < 25; i++) {
    numbers[i] = sc.nextInt();
}
...