#include<stdio.h>
#define MAX 3
int map[MAX+2][MAX+2];
int D[4][2]={0,1,1,0,0,-1,-1,0};
int book[MAX+2][MAX+2];
void Init()
{
for(int i=0;i<MAX+2;i++)
for(int j=0;j<MAX+2;j++){
scanf("%d",&map[i][j]);
}
}
int fcount=-1;
int YesOrNo=0;
struct DL
{
int x,y,f;
};
int main()
{
int x,y,tx,ty;
DL dl[100];
Init();
int head=0,tail=1;
dl[head].x=1;
dl[head].y=1;
dl[head].f=-1;
while(head<tail){
fcount++;
x=dl[head].x;
y=dl[head].y;
// printf("(%d,%d)",dl[head].x,dl[head].y);
for(int i=0;i<4;i++){
tx=x+D[i][0];
ty=y+D[i][1];
if(tx==3&&ty==3){
dl[tail].x=tx;
dl[tail].y=ty;
dl[tail].f=fcount;
// printf("(%d,%d)",dl[tail].x,dl[tail].y);
YesOrNo=1;
break;
}
if(map[tx][ty]==0){
dl[tail].x=tx;
dl[tail].y=ty;
dl[tail].f=fcount;
tail++;
}
}
map[x][y]=-1;
head++;
if(YesOrNo==1){
while(tail!=-1){
printf("(%d,%d)",dl[tail].x,dl[tail].y);
tail=dl[tail].f;
}
break;
}
}
return 0;
}
运行结果如下: