该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
很慢啊!
#include
#include
/* Æå×ÓÊý¼°ÆåÅÌ´óСMAXxMAX */
#define MAX 15
int board[MAX];
long count=1;
FILE *fp;
/* Ó¡³ö½Y¹û */
void show_result()
{
int i;
printf("#%ld:",count);
fprintf(fp,"#%ld:",count);
count++;
for(i=0;i
{
printf("(%d,%d)",i,board[i]);
fprintf(fp,"(%d,%d)",i,board[i]);
}
printf("\n");
fprintf(fp,"\n");
}
/* ¼ì²éÊÇ·ñÔÚͬһֱ™MбÏßÉÏÓÐÆäËüÆå×Ó */
int check_cross(int n)
{
int i;
for(i=0;i
{
if(board[i]==board[n] || (n-i)==abs(board[i]-board[n]))
return 1;
}
return 0;
}
/* ·ÅÆå×Óµ½ÆåÅÌÉÏ */
void put_chess(int n)
{
int i;
for(i=0;i
{
board[n]=i;
if(!check_cross(n))
{
if(n==MAX-1)
show_result();/* ÕÒµ½ÆäÖÐÒ»ÖÖ·Å·¨ÁË...Ó¡³ö½Y¹û */
else
put_chess(n+1);
}
}
}
void main()
{
clrscr();
fp=fopen("out.txt","w+");
puts("The possible placements are:");
put_chess(0);
puts("\n Press any key to quit...");
getch();
fclose(fp);
return;
}