如何输出含递增数字的下三角矩阵?程序输出空白求协助
解决下三角递增矩阵输出空白的问题
看起来你现在的核心问题是:现有代码只完成了行列数的输入校验和二维数组初始化,既没有给下三角区域填充递增数字,也没有编写任何打印矩阵的逻辑,所以运行后自然输出空白。我来帮你补全完整的实现,完全匹配你要的下三角递增矩阵需求:
完整代码示例
import java.util.Scanner; public class LowerTriangleMatrix { public static void main(String[] args) { Scanner input_scanner = new Scanner(System.in); int rowsAndColumns = 0; // 你的原有输入校验逻辑 while (rowsAndColumns < 4 || rowsAndColumns > 20) { System.out.print("How many rows and columns (min 4 & max 20)? "); rowsAndColumns = input_scanner.nextInt(); } int[][] intMatrix = new int[rowsAndColumns][rowsAndColumns]; int counter = 1; // 用于生成递增数字的计数器 // 1. 给下三角区域填充递增数字 for (int i = 0; i < rowsAndColumns; i++) { // 下三角的列号j <= 行号i,仅处理这些位置 for (int j = 0; j <= i; j++) { intMatrix[i][j] = counter++; } } // 2. 打印输出下三角矩阵 System.out.println("\n生成的下三角递增矩阵:"); for (int i = 0; i < rowsAndColumns; i++) { for (int j = 0; j < rowsAndColumns; j++) { if (j <= i) { // 用格式化输出保证数字对齐,让矩阵更整齐 System.out.printf("%3d", intMatrix[i][j]); } else { // 非下三角区域输出空格占位,维持矩阵形状 System.out.print(" "); } } // 每行结束换行 System.out.println(); } input_scanner.close(); } }
关键逻辑说明
- 填充下三角:通过嵌套循环定位下三角区域(列号≤行号的位置),用
counter++实现数字从1开始递增赋值。 - 格式化输出:使用
%3d让每个数字占3个字符宽度,避免因数字位数不同导致矩阵错位;非下三角区域用空格占位,保证下三角的视觉效果。 - 示例输出:当输入
4时,输出效果如下:
1 2 3 4 5 6 7 8 9 10
内容的提问来源于stack exchange,提问作者JSON_Derulo
相关产品推荐
相关产品推荐

