[英]java 2D integer array looping wrong output
代码:
class test1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt(); // input number rows & colums
int twoD[][] = new int[a][];
int z;
for (z = 0 ; z < a ; z++) {
twoD[z] = new int[z + 1];
}
int i,j,k = 0;
for (i = 0 ; i < a ; i++) {
for (j = 0 ; j <= i ; j++){
twoD[i][j] = k;
k++;
}
for (i = 0 ; i < a ; i++ ) {
for (j = 0 ; j <= i ; j++){
System.out.print(twoD[i][j] + " ");
}
System.out.println();
}
}
}
我预期的 output 是(对于 a = 4):
0
1 2
3 4 5
6 7 8 9
我的 output 是(对于 a = 4):
0
0 0
0 0 0
0 0 0 0
请帮我解决我的问题。 据我说,修剪是正确的。 其他地方可能有错误...
打印数组内容的循环包含在应该用值填充二维数组的循环中。 由于它使用相同的变量,因此会干扰第一个循环的执行。 将其移出:
int i,j,k = 0;
for (i = 0 ; i < a ; i++) {
for (j = 0 ; j <= i ; j++){
twoD[i][j] = k;
k++;
}
}
for (i = 0 ; i < a ; i++ ) {
for (j = 0 ; j <= i ; j++){
System.out.print(twoD[i][j] + " ");
}
System.out.println();
}
您可以通过以下方式避免这种情况
for (int i = 0 ; i < a ; i++)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.