如何打印出列中的数组,从最后一列和最后一行开始,然后向后移动到第一列和第一行。我得到一个OutOfBoundsException。我相信问题在于我的内循环。
看起来应该是这样的 89,66,21,90,54, 等....
{33, 92, 54},
{22, 43, 90},
{26, 85, 21},
{75, 14, 66},
{ 8, 49, 89}
};
for(col=2; col<stuff.length; col++)
{
for(row=4; row<stuff.length; row--)
{
System.out.print(stuff[row][col] + ",");
}
System.out.println();
}
答案 0 :(得分:0)
我相信你可能有两个问题。第一个是你的第一个循环从2开始然后继续计数。这意味着它只会打印最后一行。我认为您需要将col++
更改为col--
,并将其从col<stuff.length
更改为col>=0
。第二个for
需要从row<stuff.length
到row>=0
进行类似的更改。 IndexOutOfBounds将来自内部循环,进入无限循环倒计时,最终将导致它尝试以负值访问您的数组。
答案 1 :(得分:0)
1)你的循环从第2列开始并向上计数,这意味着只打印最后一列
2)一旦小于0,你需要将外循环计数器更改为停止,这样就不会产生无限循环
3)你需要为内循环做同样的事情并确保它计数到0并停止
应该这样做。
答案 2 :(得分:0)
假设东西是你的二维数组。 stuff.length将始终返回no行,否则返回no。您需要做的事情[0] .length
上述问题的解决方案如下:
public static void main(String args[]){
int A[][] = {{33,92,54},
{22,43,90},
{26,85,21},
{75,14,66},
{8,49,89}};
int rowCount = A.length;
int colCount = A[0].length;
System.out.println("rows:"+rowCount);
System.out.println("cols:"+colCount);
for(int j= colCount-1; j>=0;j--){
for (int i = rowCount-1;i>=0;i--){
System.out.print(A[i][j] +",");
}
}
}