读书人

八皇后有关问题用C语言解决

发布时间: 2012-02-17 17:50:42 作者: rapoo

八皇后问题用C语言解决
八皇后问题用C语言解决,谢谢帮忙!
本人新手


[解决办法]
#include <stdio.h>

static char Queen[8][8];
static int a[8];
static int b[15];
static int c[15];
static int iQueenNum=0;

void qu(int i);

int main(int argc, char *argv[])
{
int iLine,iColumn;

for (iLine=0;iLine <8;iLine++){
a[iLine] = 0;
for (iColumn=0;iColumn <8;iColumn++){
Queen[iLine][iColumn] = '* ';
}
}
for (iLine=0;iLine <15;iLine++){
b[iLine] = c[iLine] = 0;
}

qu(0);
system( "pause ");
return 0;
}

void qu(int i){
int iColumn;

for (iColumn=0;iColumn <8;iColumn++){
if (a[iColumn]==0 && b[i-iColumn+7]==0 && c[i+iColumn]==0){
Queen[i][iColumn] = '@ ';
a[iColumn] = 1;
b[i-iColumn+7] = 1;
c[i+iColumn] = 1;
if (i <7){
qu(i+1);
}
else{
int iLine,iColumn;
printf( "%d\n ",++iQueenNum);
for (iLine=0;iLine <8;iLine++){
for (iColumn=0;iColumn <8;iColumn++){
printf( "%c ",Queen[iLine][iColumn]);
}
printf( "\n ");
}
printf( "\n\n\n ");
system( "pause ");
}

Queen[i][iColumn] = '* ';
a[iColumn] = 0;
a[i-iColumn+7] = 0;
c[i+iColumn] = 0;
}
}
}

读书人网 >C++

热点推荐