-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、それはnullです(つまり、まだ実際のものを表しておらず、将来的に配列を指す可能性のある名前にすぎません)。次に、何とかして、保持する要素の数を指定します。これを行うために一般的に使用される2つの方法があります。

1つ目は、次のようになります。myArray = new int[42];これにより配列が初期化されますが、すべてのスロットがゼロになります(さらに悪いことに、オブジェクトの配列の場合はnullになります)。個々のスロットの1つ(この場合は4番目のスロット)を。で埋めることができますmyArray[3] = 13。これにより、int13がmyArrayのスロット3に格納されます。配列スロットは0からカウントを開始するため、最初に呼び出す要素が必要なmyArray[0]場合、2番目に呼び出す要素が必要な場合、というように続きますmyArray[1]。forループを使用して、配列全体に数行のコードを入力できます。

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

これで、アレイは、人生の目的が何であれ、使用できるようになりました。

配列を埋める2番目の方法は、配列を初期化するときに発生します。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 [N];

これにより、 のすべての要素がarrayデフォルト値のint0 に初期化されます。

したがって、最大として 0 を取得します。

于 2012-10-24T03:50:13.887 に答える
1

メソッドの使用法にエラーがあります。それ以外の場合は問題ありません。

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

あなたがやろうとしたことであり、10が出力されます。

于 2012-10-24T03:46:03.127 に答える
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 に答える