【问题标题】:How to traverse through the diagonals? [duplicate]如何遍历对角线? [复制]
【发布时间】:2021-11-29 18:07:33
【问题描述】:

它每次都给 outOfBounds。我现在已经尝试了所有可能的改变,但它没有给出输出。 O/P 应该是 7-4-8-1-5-9-2-6-3

 for(int g=n-1; g>=0; g--) {
        for(int i=g, j=0; i>=g; i++, j++) {
            System.out.print(a[i][j]);
        }
        System.out.println();
    }
    
    
    for(int g=0; g<n; g++) {
        for(int i=0, j=i+g; j<n; i++,j++) {
            System.out.print(a[i][j]) ;
        }
        System.out.println();

【问题讨论】:

    标签: java arrays matrix


    【解决方案1】:

    我认为您可以做的第一件事是将 i>=g 更改为更好的限制。 当您正递增 i 并且 i 已经等于 g 时,它将继续超过数组边界的限制。也许我

    如果我试图迭代一个方阵,我将只使用一个变量并使用 a[i][i] 进行迭代以减少混淆:

    for (i=0; i > (your bounds); i++) {
        System.out.println(a[i][i]);
    }
    

    这是基本逻辑,但您似乎正在尝试实现一些更高级的东西,因此请根据需要进行修改。

    【讨论】:

    • 如果我理解正确,OP 想要以平行于主对角线的斜线(对角线)打印所有数组项序列。对于 h 的所有合理值,即在 i 的有效范围内的项目 a[i][i+h]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 2019-04-14
    • 2011-02-21
    • 1970-01-01
    • 2010-11-22
    • 2019-01-03
    相关资源
    最近更新 更多