杨辉三角,我不明白我代码哪里出问题了

我实在不知道此代码那里出问题了问题了,我感觉我的逻辑没有问题啊,但我实在想不明白

img

#include <stdio.h>
#define LINE_MAXIMUM 12  //行数再多三角变形了 
 
int main()
{
    int i = 0, j = 0, k = 0;
    int array[LINE_MAXIMUM][LINE_MAXIMUM] = {0};
    /* 填充二维数组 */
    for(i = 0; i < LINE_MAXIMUM; i++) //行数
    {
        for(j = 0; j <= i; j++)    //每行的列数(第n行的数字有n项)
        {
            if(j == 0 || j == i)   //每行第一列和最后一列为1
                array[i][j] = 1;
            else                   //每个数等于它上方两数之和
                array[i][j] = array[i-1][j-1] + array[i-1][j];
        }
    }
     /* 打印杨辉三角(等腰) */
    for(i = 0; i < LINE_MAXIMUM; i++)
    {
        //在数字前打印空格,最后一行空格数为0
        for(k = 1; k < LINE_MAXIMUM - i; k++) printf("  "); //去掉此行为直角三角形 
        for(j = 0; j <= i; j++)
            printf("%3d ", array[i][j]);
        printf("\n");
    }
    
    return 0;
}

你数组就没赋上值,打印的都是随机性

img


就算给数组赋值,但结果还是这样