/ / 2D配列の運動が解決する必要があります - java、配列

2D配列の運動が解決する必要があります - java、配列

プログラムを次のように印刷します。

マトリックス要素: 2
4 6
8 10 12
14 16
18

しかし、私は立ち往生した。これは私のコードです:

    int[][] matrix = new int [5][];
matrix[0] = new int[1];
matrix[1] = new int[2];
matrix[2] = new int[3];
matrix[3] = new int[2];
matrix[4] = new int[1];
System.out.println("nn Matrix elements: ");
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println("t");
}

そしてプログラムは次のようにしか印刷されません:

マトリックス要素: 0
0 0
0 0 0
0 0
0

助けてくれてありがとう!

回答:

回答№1の場合は3

それはあなたが2番目の忘れた割り当て。あなたのコードはちょうど言っている: "ちょっとジャワ、私は二次元の配列が必要とそれは5行を持つ必要があります"とその後、 "ああ、行1は1列、行2 2列..."あなたはあなたがそこに持ちたいと思っている価値を調整しませんでした。

あなたができることは次のとおりです:

    int[][] matrix = new int [5][];
// one by one assignment
matrix[0] = new int[1];
matrix[0][0] = 0;

matrix[1] = new int[2];
matrix[1][0] = 2;
matrix[1][1] = 4;
//...

または:

    int[][] matrix = new int [5][];
// This way you just say what you want to have inside the array and java will
// evaluate the size needed
matrix[0] = new int[]{ 0 };
matrix[1] = new int[]{ 2, 4 };
//...

または:

   // like the previous one, but in a two dimensional way.
int[][] matrix = new int[][] {
{ 0 },
{ 4, 6 },
{ 8, 10, 12 },
{ 14, 16 },
{ 18 }
};

このメソッドは同じ結果につながりますが、可読性が向上するため、3番目のメソッドを使用することを強くお勧めします。


回答№2の場合は1

まず、各配列要素に値を割り当てる必要があります。以下のコードで説明します。

    int temp=0;
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
temp=temp+2;
matrix[i][j] = temp;
}

}
for(int k = 0; k < matrix.length; k++) {
for(int l = 0; l < matrix[k].length; l++) {
System.out.print(matrix[k][l] + " ");
}
System.out.println("t");
}

これがあなたに役立つことを願ってください。


回答№3の場合は-1

要素に値を割り当てます。 int [i] [j]が0なので、0の値を出力します。

        int [][] matrix = new int[5][];
matrix[0] = new int[1];
matrix[1] = new int[2];
matrix[2] = new int[3];
matrix[3] = new int[2];
matrix[4] = new int[1];

for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
matrix[i][j]= j+i+2;
}
}


System.out.println("nn Matrix elements: ");
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println("t");
}

または...

        int [][] matrix = new int[5][];
matrix[0] = new int[1];
matrix[1] = new int[2];
matrix[2] = new int[3];
matrix[3] = new int[2];
matrix[4] = new int[1];


System.out.println("nn Matrix elements: ");
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(i+j+2 + " ");
}
System.out.println("t");
}