数组中的最小值始终设置为0

时间:2019-12-22 12:44:21

标签: java arrays

我是Java的新手,当我想将整数输入到数组中然后输出最低和最高值时,即使不输入0,最低值也始终为0。

import java.util.Scanner;
public class Arrays {

    public static void main(String[] args) {

        int array[] = new int[10];
        int max = array[0], min = array[0];
        Scanner input = new Scanner(System.in);

        for ( int i=0 ; i<10 ; i++) {
            array[i] = input.nextInt();

                if(array[i]>max) 
                    max = array[i];

                if(array[i]<min) 
                    min = array[i];
        }

        for ( int i=0 ; i<10 ; i++)
            System.out.println(array[i]);

        System.out.printf("The lowest number is %d"
                + " and the highest number is %d",min,max);
    }

有人可以告诉我我的错误在哪里,为什么?

1 个答案:

答案 0 :(得分:2)

错误在这里:

int max = array[0], min = array[0];

您将maxmin初始化为0,因为在这一点上,默认情况下该数组仅包含0(因为尚未分配值) )。因此,如果所有输入均为正,则min将保持0

要解决该问题,您可能需要先读取数组中的所有输入,然后使用第二个循环查找最小值和最大值。

另一种选择是将max初始化为Integer.MIN_VALUE,并将min初始化为Integer.MAX_VALUE

相关问题