多维数组



如何逐列打印数组,从最后一列和最后一行开始,向后打印到第一列和第一行。我得到一个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();
    }

我想你可能有两个问题。首先,你的第一个循环从2开始,然后继续计数。这意味着它将只打印最后一行。我认为您需要将col++更改为col--以及将其从col<stuff.length更改为col>=0。第二个for需要从row<stuff.lengthrow>=0进行类似的更改。IndexOutOfBounds将来自内部循环,进入无限循环倒数,这将最终导致它尝试以负值访问数组。

1)你的循环从col2开始计数,这意味着只有最后一列将被打印

2)你需要改变外部循环计数器,当它小于0时停止,这样就不会造成无限循环

3)你需要对内循环做同样的事情,并确保它计数到0并停止

应该可以了

假设东西是你的二维数组。的东西。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] +",");
            }
        }
    }

相关内容

  • 没有找到相关文章

最新更新