如何将Ints读取为数组并输出MinMax

时间:2019-02-25 02:02:58

标签: java arrays loops max min

当前正在尝试输出从键盘输入的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 :(得分:2)

您不能这样做:

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();
}

答案 1 :(得分:0)

问题是您的主要职责。 只需这样做:

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));
}