用C语言编程:在8*8格上摆棋子任意一个棋子不能处于同一行同一列或同一...
发布网友
发布时间:2024-10-23 20:39
我来回答
共3个回答
热心网友
时间:6小时前
参考一下我的代码吧,你再作下修改就行了
#include<stdio.h>
void reset(int visited[][8])
{
int i;
int j;
for(i = 0; i < 8; i++)
for(j = 0; j < 8; j++)
visited[i][j] = 0;
}
int judge(int visited[][8],int i,int j)
{
int k;
if(i == j)
{
for(k = 0; k < 8; k++)
if(visited[k][k])
return 0;
}
if(i+j == 7)
{
for(k = 0; k < 8; k++)
if(visited[k][7-k])
return 0;
}
for(k = 0; k < 8; k++)
if(visited[i][k] || visited[k][j])
return 0;
return 1;
}
void main()
{
FILE *fp = fopen("output.txt","w");
int visited[8][8];
int m,n;
int i,j;
for(m = 0; m < 8; m++) //从左到右遍历
for(n = 0; n < 8; n++)
{
reset(visited);
visited[m][n] = 1;
for(i = 0; i < 8; i++)
{
for(j = 0; j < 8;j++)
{
if(judge(visited,i,j) || visited[i][j])
{
visited[i][j] = 1;
fprintf(fp,"# ");
}
else
fprintf(fp,". ");
}
fprintf(fp,"\n");
}
fprintf(fp,"\n");
}
fclose(fp);
}
热心网友
时间:6小时前
要求描述不正确~ 摆几个旗子???
热心网友
时间:6小时前
八皇后啊~