当赋予N不同值时,如16,输出正常,当赋予N为20时,会出现一行无关的0,为什么

img

img

#include<iostream>
const  int N=8;
using namespace std;
void creat(int p[][N], int n)
{
    for (int i = 0; i < n; i++)
    {
        int j = 0;
        for (; j < i + 1; j++)
            if (i == 0 || j == 0 || i == j)
                p[i][j] = 1;
            else p[i][j] = p[i - 1][j] + p[i - 1][j - 1];

        while (j < n)
        {
            p[i][j] = 0;
            j++;
        }
    }
}
void print(int(*p)[N], int n)
{
    for (int i = 0; i < n; i++)
!

    {
        for (int j = 0; j < n; j++)
            cout << p[i][j] << '\t';
        cout << endl;
    }
}
int main()
{
    int YH[N][N];
    creat(YH, N);
    print(YH, N);
}

程序没问题,我猜所谓的无关的0,其实是上一行屏幕显示不下,然后发生折行显示而已吧?