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

问题描述 投票:0回答:2

目前尝试从键盘输出最小和最多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;
    }
}
java arrays loops max min
2个回答
2
投票

你不能这样做:

int[] numbers = sc.nextInt();

这是因为sc.nextInt()返回int而不是ints数组。

相反,您需要创建一个读取25个整数的循环:

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

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));
}
© www.soinside.com 2019 - 2024. All rights reserved.