0

提前致谢。当我打印这个数组的最小值时,我无法弄清楚为什么我的代码给我带来了麻烦。它似乎保留了 min 的初始 0 值,但我不知道如何纠正这个问题。麦克斯工作正常。我是否在程序的错误部分设置了最大值和最小值?

另外,这是我第一次分配数组,所以我以后可能会有一些关于打印下标的问题。

再次感谢!

编辑-据我所知,这解决了问题。谢谢丹·W。

 for (int i = 0; i < NUMBER_OF_ELEMENTS; i++) {
        System.out.print("Enter a new number. This will continue until "
                + "you reach the size of the array. ");
        arrayOfNumbers[i] = keyboard.nextInt();
    }
            int max = arrayOfNumbers[0];
            int min = arrayOfNumbers[0];

package program8;

import java.util.Scanner;

public class arrayPrint {

    public static void main(String[] args) {
        final int NUMBER_OF_ELEMENTS;
      Scanner keyboard = new Scanner(System.in);
        System.out.print("Enter the amount of numbers the array will read in. ");
        NUMBER_OF_ELEMENTS = keyboard.nextInt();
                int arrayOfNumbers[] = new int[NUMBER_OF_ELEMENTS];
                int max = arrayOfNumbers[0];
                int min = arrayOfNumbers[0];
        for (int i = 0; i < NUMBER_OF_ELEMENTS; i++) {
            System.out.print("Enter a new number. This will continue until "
                    + "you reach the size of the array. ");
            arrayOfNumbers[i] = keyboard.nextInt();
        }
        for (int i = 0; i < arrayOfNumbers.length; i++) {
            if (max <= arrayOfNumbers[i])
                max = arrayOfNumbers[i];
        }
        for (int i = 0; i < arrayOfNumbers.length; i++) {
            if (min >= arrayOfNumbers[i])
                min = arrayOfNumbers[i];
        }
                System.out.print(+max+ "max and " +min+ " min");
        }


}
4

1 回答 1

1

你输入什么值?因为 anint的默认值为 0:这里 所以,如果你只输入正数,min 将始终为 0。

为避免这种情况,请在用户输入数字后初始化 min 和 max,这样 max 和 min 不会默认为 0。

于 2011-12-08T18:48:06.980 回答