主题:n皇后问题,帮忙找个错误。
好 20:04:14
//5huanghou
#include<iostream.h>
void main()
{
const int m=5,n=5;
int A[m][n];
for(int i=0;i<m;i++)
{
{
A[0][i]=1;
for(int j=0;j<m;j++)
{
if(j!=i)
A[0][j]=0;
}
}
for(int o=0;o<m;o++)
{
{
A[1][o]=1;
for(int p=0;p<m;p++)
{
if(o!=p)
A[1][p]=0;
}
}
for(int a=0;a<m;a++)
{
{
A[2][a]=1;
for(int b=0;b<m;b++)
{
if(a!=b)
A[2][b]=0;
}
}
for(int c=0;c<m;c++)
{
{
A[3][c]=1;
for(int d=0;d<m;d++)
{
if(c!=d)
A[3][d]=0;
}
}
for(int e=0;e<m;e++)
{
{
A[4][e]=1;
for(int f=0;f<m;f++)
{
if(e!=f)
A[4][f]=0;
}
if((i!=o&&o!=a&&a!=c&&c!=e)//判断是否在同一列上
&&(i!=o+1&&o!=a+1&&a!=c+1&&c!=e+1)//判断是否在同一斜线上
)
for(int k=0;k<m;k++)
for(int l=0;l<m;l++)
{
cout<<" "<<A[k][l];
if(l==4)
cout<<endl;
}
cout<<endl;
}
}
}
}
}
}
}
//5huanghou
#include<iostream.h>
void main()
{
const int m=5,n=5;
int A[m][n];
for(int i=0;i<m;i++)
{
{
A[0][i]=1;
for(int j=0;j<m;j++)
{
if(j!=i)
A[0][j]=0;
}
}
for(int o=0;o<m;o++)
{
{
A[1][o]=1;
for(int p=0;p<m;p++)
{
if(o!=p)
A[1][p]=0;
}
}
for(int a=0;a<m;a++)
{
{
A[2][a]=1;
for(int b=0;b<m;b++)
{
if(a!=b)
A[2][b]=0;
}
}
for(int c=0;c<m;c++)
{
{
A[3][c]=1;
for(int d=0;d<m;d++)
{
if(c!=d)
A[3][d]=0;
}
}
for(int e=0;e<m;e++)
{
{
A[4][e]=1;
for(int f=0;f<m;f++)
{
if(e!=f)
A[4][f]=0;
}
if((i!=o&&o!=a&&a!=c&&c!=e)//判断是否在同一列上
&&(i!=o+1&&o!=a+1&&a!=c+1&&c!=e+1)//判断是否在同一斜线上
)
for(int k=0;k<m;k++)
for(int l=0;l<m;l++)
{
cout<<" "<<A[k][l];
if(l==4)
cout<<endl;
}
cout<<endl;
}
}
}
}
}
}
}