为什么我的函数不循环,后面的全都是零 应该是这样的才对 1 1 1 1 3 3 1 1 4 6 4

为什么我的函数不循环,后面的全都是零 应该是这样的才对 1 1 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 哪个大佬帮我改正一下错误,求教
#include "stdio.h"

int main()
{
    int a[100][100],i,j,num;
    printf("请输入你要打印的行数");
    scanf("%d",&num);

    for(i=0;i<100;i++)
    {
        for(j=0;j<100;j++);            //这里多了一个分号
           a[i][j]=0; 
    }

    for(i=0;i<num;i++)                 //这里设置好了杨辉三角每行第一个数
        a[i][0]=1;
    for(j=1;j<num;j++)                 //这里设置了杨辉三角第num+1行的数,因为i=num
        a[i][j]=a[i-1][j]+a[i-1][j-1];
    
    for(i=0;i<num;i++)
    {
        for(j=0;j<i;j++)               //这里输出杨辉三角形,但每行的最后一个数不会输出,因为j<i,所以像a[0][0],a[1][1]不会输出。
            printf("%d",a[i][j]);
        printf("\n");
    }

    return 0;
}

稍微改一下

#include "stdio.h"

int main()
{
    int a[100][100],i,j,num;
    printf("请输入你要打印的行数");
    scanf("%d",&num);

    for(i=0;i<100;i++)
    {
        for(j=0;j<100;j++)             //这里把分号删了
           a[i][j]=0; 
    }

    for(i=0;i<num;i++)                 //这里设置好了杨辉三角每行的数,用大括号表示哪部分是循环体,如果没有大括号,就只执行后面一条语句
    {
        a[i][0]=1;
        for(j=1;j<=i;j++)              //这里设置了杨辉三角每行除第一个的数
            a[i][j]=a[i-1][j]+a[i-1][j-1];
    }
    
    for(i=0;i<num;i++)
    {
        for(j=0;j<=i;j++)               //这里把判断条件改了
            printf("%d",a[i][j]);
        printf("\n");
    }

    return 0;
}