八皇后的编程实现问题.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:3 大小:38KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

八皇后的编程实现问题.doc

八皇后的编程实现问题.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<stdlib.h>#include<stdio.h>#defineTRUE1#defineFALSE0intnqueens(int*a,intn){inti,j,top,conflict;if(n<=0)returnFALSE;top=-1;i=0;do{conflict=FALSE;for(j=0;j<top+1;j++)if(i==a[j]||top+1-j==i-a[j]||top+1-j==a[j]-i)conflict=TRUE;if(conflict==FALSE){a[++top]=i;if(top==n-1)returnTRUE;i=0;}else{while(i==n-1&&top>=0)i=a[top--];i++;}}while(i<n);returnFALSE;}voidprintsolution(inta[],intn){inti,j;printf("\nplacequeensinthefollowingpositions:\n");for(i=0;i<n;i++){printf("Row%3d-Col%3d:|",i,a[i]);printf("Q|");for(j=a[i]+1;j<n;j++)printf("|");printf("\n");}}voidmain(){int*a,n;printf("pleaseenteranintegerasthesizeoftheproblem:\n=");scanf("%d",&n);if(n>0)a=(int*)malloc(n*sizeof(int));else{printf("Error!invalidinput!|n");return;}if(nqueens(a,n)==TRUE)printsolution(a,n);elseprintf("sorry!\nthereisnosolutionfpr%dqueensproblem!\n",n);free(a);}