用c语言实现八皇后问题,哪里有错?
#include"stdio.h"#include"math.h"#defineN8intq[N];intplace(intk,intj){inti;for(i=0;i<...
#include"stdio.h"
#include"math.h"
#define N 8
int q[N];
int place(int k,int j)
{
int i;
for(i=0;i<k;i++)
if(j==q[i]||abs(k-i)==abs(j-q[i]))
return 0;
return 1;
}
void queen(int k,int n)
{
int j;
for(j=0;j<n;j++)
if(place(k,j))
{
q[k]=j;
break;
}
}
void main()
{
int f[N][N];
int i,j;
for(i=0;i<N;i++)
queen(i,N);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
if(q[i]==j)
f[i][j]=1;
else
f[i][j]=0;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-2d",f[i][j]);
printf("\n");
}
} 展开
#include"math.h"
#define N 8
int q[N];
int place(int k,int j)
{
int i;
for(i=0;i<k;i++)
if(j==q[i]||abs(k-i)==abs(j-q[i]))
return 0;
return 1;
}
void queen(int k,int n)
{
int j;
for(j=0;j<n;j++)
if(place(k,j))
{
q[k]=j;
break;
}
}
void main()
{
int f[N][N];
int i,j;
for(i=0;i<N;i++)
queen(i,N);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
if(q[i]==j)
f[i][j]=1;
else
f[i][j]=0;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-2d",f[i][j]);
printf("\n");
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询