日期:2014-05-18  浏览次数:20723 次

求助!初始化二维数组 由键盘输入
我的代码如下:
public class BasicStatistics {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] numTable = new int[3][5];
for (int i = 0; i < 3; i++) {
   for (int j = 0; j < 5; j++) {
    numTable[i][j] = Integer.parseInt(args[i*numTable.length+j]);
   }
}
  
for (int m = 0; m < numTable.length; m++) {
   
for (int n = 0; n < numTable[m].length; n++) {
    System.out.print(numTable[m][n]+" ");
   }
}


}

}


但现在有个问题是:数组是3*5的二维数组 我由命令行输入1 2 3 4 5 。。。。15 但是为什么结果如下:

1 2 3 4 5 4 5 6 7 8 7 8 9 10 11 

为什么缺了12--15?

请各位大神指教!
Java 二维数组

------解决方案--------------------
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] numTable = new int[3][5];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
numTable[i][j] = Integer
.parseInt(args[i * numTable[0].length + j]);
}
}

for (int m = 0; m < numTable.length; m++) {
for (int n = 0; n < numTable[m].length; n++) {
System.out.print(numTable[m][n] + " ");
}
}

}

代码问题  你的i*numTable.length+j这地方是相当于i*3+j其实你要的是数组的列长度而你写成了行长度
------解决方案--------------------
差不多,同一楼的

public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] numTable = new int[3][5];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
int k=i*numTable[0].length + j;
System.out.println(k);
numTable[i][j] = Integer
.parseInt(args[k]);
}
}

for (int m = 0; m < numTable.length; m++) {

for (int n = 0; n < numTable[m].length; n++) {
System.out.print(numTable[m][n] + " ");
}
}

}