求两个1之间最短距离的问题 谢谢大家帮助
/*1 1 1 1 1 1
1 0 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
*/
#include "stdio.h"
int zd(int x,int y,int zx,int zy)
{
int shang=0,xia=0,zuo=0,you=0,a[4][6]={1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1};
if(x==zx && y==zy)
{
return 0;
}else
{
if(zx-1>=0 && a[zx-1][zy]>0 && a[zx-1][zy]!=0)
{
shang=zd(zx-1,zy);
}
if(zx+1>=3 && a[zx+1][zy]>0 && a[zx+1][zy]!=0)
{
xia=zd(zx+1,zy);
}
if(zy-1>=0 && a[zx][zy-1]>0 && a[zx][zy-1]!=0)
{
zuo=zd(zx,zy-1);
}
if(zy+1>=5 && a[zx][zy+1]>0 && a[zx][zy+1]!=0)
{
you=zd(zx,zy+1);
}
}
void main()
{
int x,y,zx,zy;
scanf("%d%d%d%d",&x,&y,&zx,&zy);
zd(int x,y,zx,zy);
}
求两个1直接最短距离,0为墙不能通过,编译就6个错,递归也写的不是很好,求高手帮完成,谢谢!
[ 本帖最后由 wangziran 于 2009-11-13 20:13 编辑 ]