杨辉三角形输出结果一直有0,导致一直无法通过


#include <stdio.h>
int main(){
const int N=21;
int g[N][N]={};
int n=0;;
scanf("%d",&n);
g[1][1]=1;
printf("%d\n",g[1][1]);
for(int i=2;i<=n;i++){
for(int j=1;j<=n;j++){
g[i][j]=g[i-1][j]+g[i-1][j-1];
printf("%d ",g[i][j]);
}
printf("\n");
}
return 0;
}
我需要的结果是
输入5
得到
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
但是这个代码得到的是
1
1 1 0 0 0
1 2 1 0 0
1 3 3 1 0
1 4 6 4 1
为什么会有0
怎么修改代码没有0