使用二维数组打印右半金字塔时出现异常0值的问题求助
问题分析与解决
你的代码核心问题是数组赋值的索引错误:内部循环中,你把递增的k值赋值给了twoD[i][i],这只会给每行的最后一个元素赋值,其他未被主动赋值的数组元素默认保留初始值0,导致输出出现大量0。
修正后的代码
public class Main { public static void main(String[] args) { int[][] twoD = new int[4][4]; int i, j, k = 0; for (i = 0; i < 4; i++){ for (j = 0; j < i + 1; j++) { twoD[i][j] = k; // 将列索引从i改为j,匹配当前遍历的位置 k++; System.out.print(twoD[i][j] + " "); } System.out.println(); } } }
修正后输出
0 1 2 3 4 5 6 7 8 9
关键修改说明
把twoD[i][i] = k替换为twoD[i][j] = k,确保每一个被遍历到的(i,j)位置都被赋值为递增的k值,而不是仅给每行的最后一个元素赋值。
内容的提问来源于stack exchange,提问作者OctoNInjaCat
相关产品推荐
相关产品推荐

