Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

谁能帮我看看这道“八皇后”问题哪编错了?先谢了

Posted by superman at 2004-03-24 09:14:14
#include <stdio.h>
#include <math.h>
void main()
{
	struct point                //定义point类型
	{
		int row;
		int clumn;
	} points[9];                 //定义一个point类型的一维数组points[9]用来存放已经有皇后的位置
	int queen[8][8];
	int i,j,x,row,clumn,n=1;     //n表示二维数组中已有皇后的个数
	for(i=0;i<8;i++)             //对二维数组初始化赋值0
	{
		for(j=0;j<8;j++)
		{
			queen[i][j]=0;
		}
	}
	for(i=0;i<8;i++)           //该for循环令二维数组的第i行和第j列存有皇后,同时将n值赋1,并将i和j存放在points[1]中
	{                          //先使i=1,若此路不通,回溯至此使i增值1
		n=1;
		for(j=0;j<8;j++)       //先使i=1,若此路不通,回溯至此使i增值1
		{
			queen[i][j]=1;     //令二维数组的第i行和第j列存有皇后
			points[n].row=i;   //并将i保存在points[1]中
			points[n].clumn=j; //并将j保存在points[1]中
			for(row=0;row<8;row++) //row最小值是i+1,若此路不通回溯至此row增值1
			{
				for(clumn=0;clumn<8;clumn++)//clumn最小值是j+1,若此路不通回溯至此clumn增值1
				{
					for(x=1;;x++)        /*for循环用于判断二维数组的第row行和第clumn列是否满足条件*/
					{
						if(x>n)          //x>n意味着判断条件成立
						{
							queen[row][clumn]=1;     //if语句判断:当for循环结束且仍然满足条件则对queen[row][clumn]赋值1
							n++;                     //n增值1,标明多了一个皇后
							points[n].row=row;       //保存row和clumn
						    points[n].clumn=clumn;
							break;
						}
						else if(row+clumn!=points[x].row+points[x].clumn&&row-points[x].row!=clumn-points[x].clumn&&row!=points[x].row&&clumn!=points[x].clumn) //判断条件
							 continue;  //务必使queen[row][clumn]满足当x=1~ x=n的一切条件
						else break;     //如果有一个条件不满足,跳出该for循环
					}
				}
				if(n=8)                         //如果n=8表明已经有8个满足条件的皇后存在,则打印该二维数组
				{
					for(i=0;i<8;i++)
					{
						for(j=0;j<8;j++)
						{
							printf("%d ",queen[i][j]);
						}
						printf("\n");
					}
				}
			}
		}
	}
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator