编辑代码

#include<stdio.h>
#include<math.h>

#define N 4

int q[N+1]; //定义皇后的列号

int jc(int j){                    //检查j的值是否在14之间
    for (int i = 1; i < j; i++){
        if (q[i]==q[j]||abs(i-j)==abs(q[i]-q[j])) return 0;      //判断是否在同一列或同一斜线上
    }
    return 1;
}
int fns=0;//方案数
void hhs(int j){//皇后数
    for (int i = 1; i <= N; i++)
    {
        q[j] = i;

        if (jc(j))
        {
            if (j==N)
            {
                fns++;
                printf("方案%d:",fns);
                for (int i = 1; i <= N; i++)printf("%d",q[i]);
                printf("\n");  
            }
            else{
                hhs(j+1);
            }

        }
        
    }
    
}


int main()
{
    hhs(1);
    return 0;
}