用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小时前

八皇后啊~
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com