在java中创建和打印三角形数组

时间:2013-10-29 00:46:11

标签: java printing matrix

这是我的代码:

public static int[][] arraytriangle(int lines){

    int[][] tri = new int[lines][];
    int c = 1; // incremented number to use as filler
    for (int i = 0; i < lines; i++){
        for (int j = 0; j <= i; j++){
        tri[i] = new int[i+1]; // defines number of columns
            tri[i][j] = c;
            System.out.print(c + " ");
            c++; // increment counter
        }
        System.out.println(); // making new line
    }
    System.out.println(Arrays.deepToString(tri));
    return tri;

arraytriangle(3)给出:

1

2 3

4 5 6

[[1],[0,3],[0,0,6]]

所以程序正确打印(1,2,3 ...),但是当我使用deepToString时矩阵值不正确。是什么给了什么?

1 个答案:

答案 0 :(得分:5)

此作业

tri[i] = new int[i+1];

必须发生在外部循环内部但在内部循环之外。目前,您的内部循环会不断重新分配tri[i],因此只会为deepToString分配最后一项。