1

我想将以下内容读入二维锯齿状数组:

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();
    }
}

基本上,你首先定义你的二维数组应该有多少行。

for循环中,您为每一行定义一维数组及其长度。

于 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 回答