c++四皇后
初学编程...#include <iostream>
using namespace std;
int main()
{
int y[5][5]; //4*4棋盘
int i,j;
int a,b,c,d;
for(a=1;a<5;a++)
for(b=1;b<5;b++)
for(c=1;c<5;c++)
for(d=1;d<5;d++) //枚举法
{
int p[8]={0,0,0,0,0,0,0,0}; //斜着
int q[8]={0,0,0,0,0,0,0,0}; //斜着
int m[5]={0,0,0,0,0}; //竖着的
++m[a],++m[b],++m[c],++m[d];
++p[a],++p[b+1],++p[c+2],++p[d+3];
++q[5-a],++q[6-b],++q[7-c],++q[8-d]; //棋子所在位置的竖 斜都加1。
if((p[a]+q[5-a]+m[a]==3)&&(p[b+1]+q[6-b]+m[b]==3)&&(p[c+2]+q[7-c]+m[c]==3)&&(p[d+3]+q[8-d]+m[d]==3))
//如果所在棋子的竖,斜,斜数组元素相加为3,输出棋盘。
{
for(i=1;i<5;++i)
for(j=1;j<5;++j)
y[i][j]=0; //棋盘置为0
y[1][a]=1;
y[2][b]=1;
y[3][c]=1;
y[4][c]=1; //有子置为1
for(i=1;i<5;i++)
{
for(j=1;j<5;j++)
cout<<y[i][j]<<" ";
cout<<endl;
}
cout<<endl<<endl; //输出
}
}
return 0;
}
补充:发的急了点 输出结果是错的...找不出问题。帮忙找一下,谢谢啦~~
追问:谢谢。。。可是这些程序我在网上也可以找到...只是想问问自己那程序哪里有问题~~