You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修正Java二维数组右下三角打印时元素顺序反转的问题?

解决二维数组右下三角打印顺序反转的问题

我来帮你捋捋这个问题哈:你当前的内层循环是从col=3(也就是每一行的最后一列)开始递减遍历,这就导致每一行的元素是从右往左输出的,自然和你期望的从左往右的右下三角顺序完全相反了。

举个例子:第二行你期望输出7 8,但因为从col=3(对应元素8)开始往左走到col=2(对应元素7),所以输出成了8 7;第三行本来要从10(col=1)到12(col=3),结果从12开始往左打,变成了12 11 10,完全搞反了顺序。

那怎么改呢?其实很简单,把内层循环的遍历方向反过来,从符合条件的最左列开始递增到最后一列就行:

int[][] a3 = { {1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}, };
System.out.println("Lower right triangle");
for (int row = 0 ; row < a3.length ; row++){
    // 改动这里:起始列是a3[0].length - row -1,然后递增到最后一列(3)
    for (int col = a3[0].length - row - 1 ; col <= 3 ; col++) {
        System.out.print("\t" + a3[row][col]);
    }
    System.out.println();
}

运行这段代码后,输出就会和你的期望完全一致:

4
7 8
10 11 12
13 14 15 16

把这些元素连起来就是你要的4 7 8 10 11 12 13 14 15 16。

核心逻辑总结一下:右下三角的每一行,需要打印的列是从总列数 - 当前行号 -1开始,到最后一列结束,而且必须从左到右遍历这些列,而不是反过来从右往左走。

内容的提问来源于stack exchange,提问作者Alaa A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:32:29