关于c语言二维数组的一些问题

输出杨辉三角 源代码如下:
#include<stdio.h>
int main()
{
int a[10][10];
int q,w=0;
for(;q<10;q++){
for(;w<10;w++){
a[q][w]=0;
}
}
//初始化二维数组
int b,c=0; int d=2;int f=1; int g,h;
for(;b<10;b++){
a[b][c]=1;
}
a[1][1]=1;
for(;d<10;d++){
for(;f<10;f++){
g=d-1;
h=f-1;
a[d][f]=a[g][h]+a[g][f];
}
}
int x,y=0;
for(;x<10;x++){
for(;y<10;y++){
printf("%d ",a[x][y]);
printf("\n");
}
}
为什么运行不了呢?

img

问题太多了,修改了一部分

#include<stdio.h>
int main()
{
int a[10][10]={0};  //初始化
// int q=0,w=0;
// for(;q<10;q++){
// for(;w<10;w++){
//     a[q][w]=0;
// }
// }
//初始化二维数组
int b,c=0; int d=2;int f=1; int g,h;
for(;b<10;b++){
a[b][c]=1;
}
a[1][1]=1;
for(;d<10;d++){
for(;f<10;f++){
g=d-1;
h=f-1;
a[d][f]=a[g][h]+a[g][f];
}
}

for(int x=0;x<10;x++){       //遍历
for(int y=0;y<10;y++){
    printf("%d ",a[x][y]);
}
    printf("\n");
}

}