⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hon.c

📁 在一个8*8的方格里要使马走N步后可能的位置
💻 C
字号:
#include<stdio.h>
typedef struct a
{
	int x;
	int y;
}a;
a A[64];

void input(a A[],int x,int y)
{
	int i=0;
	while(A[i].x!=0)
	{
		if(A[i].x==x&&A[i].y==y)break;    //比较是否为相同的坐标点
		else i++;
	}
	if(A[i].x==0){
		A[i].x=x;
		A[i].y=y;
	}
}

void output(int N,int x,int y)
{
	if(x>=1&&x<=8&&y>=1&&y<=8&&N>=0)
	{
		if(N==0) input(A,x,y);
		else 
		{
			output( N-1, x-1, y-2);
			output( N-1, x-1, y+2);
			output( N-1, x+1, y-2);
			output( N-1, x+1, y+2);
			output( N-1, x-2, y+1);
			output( N-1, x-2, y-1);
			output( N-1, x+2, y+1);
			output( N-1, x+2, y-1);
		}
	}
}

void main()
{
	int x,y,n,c=0,p,i=0;
	for( p=0;p<64;p++)
	{
		A[p].x=0;
		A[p].y=0;
	}
	do
	{
		printf("Please input the X :");  //马的初始横坐标
		scanf("%d",&x);
		printf("Please input the Y :");  //马的初始纵坐标
		scanf("%d",&y);
		printf("please input the n :");  //马行的步数
		scanf("%d",&n);                  //由于算法要求一定的时间,建议n不要大于10
		if(x>8||y>8||x<1||y<1)
			printf("Error! Try it again,X(1~8),Y(1~8)\n");
	}
	while(x>8||y>8||x<1||y<1);
	output(n,x,y);
	while(A[i].x!=0)
	{
		c++;
		printf("this is the %d\tpoint (%d,%d)\n",c,A[i].x,A[i].y);
		i++;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -