杨辉三角形,要求是输出n+1行

今天做题遇到了个杨辉三角形,奈何数学基础不好,在百度补习了一下,可是最后发现为什么输出之后漆黑一片没有反应啊。运行结果在最后


#include
int fac(int num);//阶乘函数-n!
int main()
{        
    int n,i,j,k,l;
    int a,b,c,d;
    scanf("%d",n);
    for(i=0;i<=n;i++)//控制行 
    {                    
            for(k=0;k<2*n-2*i;k++)//输出前置空格             
                printf(" ");
            for(j=0;j<=n;j++)//输出数字 
            {
                a=fac(n);b=fac(j);
                d=n-j;     c=fac(d);
                l=a/b*c;
                printf("   %d",l);
            }    
            printf("\n");                    
    }
    return 0;    
}
int fac(int num)//阶乘函数-n!
{
    int mid1,mid2,mid3; 
    mid2=mid3=num;
    for(mid1=0;mid1-1;mid1++)//控制计算次数 
    {    
        mid2=mid2*(mid3-1);
        mid3--;
    }
    return mid2;
}

img


#include <stdio.h>
//杨辉三角
int main()
{
    int n;
    printf("请输入要打印的行数:");
    scanf("%d",&n);
    int a[100][100];
    for(int i=0;i<n;i++)
    {
        a[i][0]=1;
        a[i][i]=1;    //先将杨辉三角每行的第一个和最后一个赋值为1 
    }
    
    for(int i=2;i<n;i++)      //已知每个数等于它上方两数的之和 
    {
        for(int j=1;j<i;j++)
        {
            a[i][j]=a[i-1][j-1]+a[i-1][j];
        }
    }
    
    
    for(int i=0;i<n;i++)     //打印输出 
    {
        for(int j=0;j<=i;j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
}