八皇后 该代码错误原因 和改正方法

一道c语言八皇后问题

{#include
int zuo[15]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},you[15]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},a[9]={0},b[9]={1,1,1,1,1,1,1,1,1};
void dfs(int);
int main(void){
dfs(1);
return 0;
}
void dfs(int x){
    int i,j;
if(x==9){
    for(i=1;i<=8;i++){
        printf("%d",a[i]);
        printf("\n");
    }
    return;
}
for(j=1;j<=8;j++){
        a[x]=j;
    if(b[j]==1&&zuo[x+j-2]==1&&you[x-j+7]==1){
        b[j]=0;
        zuo[x+j-2]=0;
        you[x-j+7]=0;
    dfs(x+1);
    }
}
return;
}

出不来结果

新手上路 大一学生 看不出来问题所在 求帮忙改正 指点一下

索引从0开始,你循环为什么都从1开始
还有zuo和you都是干啥的,这思路过于清奇确实没看懂

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632