-3

我正在尝试找到 number = [10] 的数组的最大整数。我的方法打印出 0,而不是最大整数。

public static void maxArr (int[] number){ 
        int max = number[0];
        for(int i = 1; i<number.length; i++){
            if(number[i]> max){
                max = number[i];
            }
        } System.out.print(max);
    }
4

5 回答 5

2

您没有正确填充数组。

在java中,当你第一次创建一个数组时private int[] myArray,它是空的(也就是说,它还不能代表一个实际的东西,它只是一个可以指向未来数组的名称)。接下来,您以某种方式告诉它它将容纳多少个元素。有两种常用的方法可以做到这一点:

第一个看起来像myArray = new int[42];这将初始化数组,但每个槽都将为零(或者更糟糕的是,如果它是一个对象数组,则为 null)。您可以使用myArray[3] = 13. 这会将 int 13 存储在 myArray 的插槽 3 中。数组槽从 0 开始计数,所以如果你想要调用的第一个元素myArray[0],如果你想要调用的第二个元素myArray[1],依此类推。只需几行代码,您就可以使用 for 循环来填充整个数组:

for (int i = 0; i < myArray.length; i++) {
    myArray[i] = 10;
}

您的阵列现在已准备好用于其生活中的任何目的。

填充数组的第二种方法发生在初始化它时。看起来myArray = new int[] {10, 42, 24, 64, 8, 16, 3};你放入大括号的任何东西现在都在数组中,所以现在的值myArray[0]是 10,现在的值myArray[1]是 42,依此类推。

于 2012-10-24T04:10:59.633 回答
1

错误在于您的方法的使用。否则它看起来很好。

int[] array = new int[1]
array[0] = 10
maxArr(array)

是你试图做的,它会打印 10。

于 2012-10-24T03:46:03.127 回答
1
int[] array = new int [N];

这会将 的所有元素初始化array为默认值int0。

所以,你得到0作为最大值。

于 2012-10-24T03:50:13.887 回答
0

这会将所有元素初始化为 0。

int N = 10;
int[] array = new int[N]
maxArray(array)

如果你想用 10 初始化它,你应该

int[] array= {10};
maxArray(array) //This should print 10
于 2012-10-24T03:50:55.993 回答
0

尝试一些类似的东西

int[] array = new int[]{10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
maxArray(array);

现在应该打印“10”

于 2012-10-24T03:53:40.687 回答