代码见下,求大神指点
#include<bits/stdc++.h>
using namespace std;
int a[1002][1002],n,x,y,c[14]={0,1,1,2,2,-1,-1,-2,-2},xx=1e9,yy=1e9,m,d[14]={0,2,-2,1,-1,2,-2,1,-1},j,nnn=-1;
void dfs(int x,int y,int t)
{
for(int i=1;i<=8;i++)
{
int xx=x+c[i],yy=y+d[i];
if(xx>=1&&yy>=1&&xx<=n&&yy<=m&&a[xx][yy]>t)
{a[xx][yy]=t;
dfs(xx,yy,t+1);
}
}
}
int main()
{
cin>>n>>m>>x>>y;
memset(a,63,sizeof(a));
a[x][y]=0;
dfs(x,y,1);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(a[i][j]<=1e9)
printf("%-5d",a[i][j]);
else printf("%-5d",nnn);
printf("\n");
}
return 0;
}