1

以下を2Dジャグ配列に読み込みたいと思います。

3
7 4
2 4 6
8 5 9 3

すべての入力で列サイズを増やす必要があります。どうすればいいのかよくわかりません。

私のコードは次のとおりです。

int col = 1;
int[][] values = new int[rows][col];
for(int i = 0; i < values.length; i++){
  for(int j = 1; j < col; j++)
  {
     values[i][j] = kb.nextInt();
     col++;
  }
}
4

2 に答える 2

5

これでうまくいくはずです。

int[][] values = new int[rows][];
for(int i = 0; i < values.length; i++)
{
    values[i] = new int[i+1];

    for(int j = 0; j < values[i].length; j++)
    {
        values[i][j] = kb.nextInt();
    }
}

基本的に、2 次元配列に必要な行数を定義することから始めます。

ループではfor、各行の 1 次元配列をその長さで定義します。

于 2012-10-09T13:44:59.003 に答える
1

サンプル

// don't fix the second dimension
int[][] values = new int[rows][];

for(i = 0; i < rows;i ++){
    //column size increases for every line input
    values[i] = new int[i+1];

    for(j = 0; j < values[i].length; j++) {
         values[i][j] = kb.nextInt();
    }
}

Java では、配列は厳密に長方形である必要はありません。変数valuesは、rows配列への参照の要素配列intです。ここで、values[0]は 1 要素のint配列、values[1] は 2 要素のint配列などです。

于 2012-10-09T13:46:59.340 に答える