大一新生有问题,请解答一下!

img


程序在左边感觉像是if语句错了,不知道该怎么写了,麻烦解答一下


#define N 7
int main()
{
    int a[N][N], i, j;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N; j++)
        {
            if (j == 0 || j == i)
                a[i][j] = 1;
            else
                a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
        }
    }
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N - i - 1; j++) //杨辉三角的生成还是按照正常方式,注释掉这2行就能看明白。
            printf("%-5c", ' ');
        for (j = 0; j <= i; j++)
            printf("%5d", a[i][j]);
        printf("\n");
    }
    return 0;
}

数组内容如下图,靠右输出还是居中输出只就看前面空格输出怎么控制了。
    1
    1    1
    1    2    1
    1    3    3    1
    1    4    6    4    1
    1    5   10   10    5    1
    1    6   15   20   15    6    1