如果您无法下载资料,请参考说明:
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);}