练习的一个小程序 #include < stdio.h > #define size 8 int matrix[size][size] = ... { 1,1,1,1,1,1,1,1, 1,0,0,1,0,0,0,1, 1,0,1,1,0,0,0,1, 1,0,0,0,0,0,0,1, 1,0,0,1,0,0,0,1, 1,0,0,1,0,0,0,1, 1,0,0,1,0,0,0,1, 1,1,1,1,1,1,1,1,} ; int startx,starty,endx,endy;setMatrix( int x, int y, int flag) ... { matrix[x][y]=flag;} int getMatrix( int x, int y) ... { return matrix[x][y];} print() ... { int i,j; for(i=0;i<size;i++)...{ for(j=0;j<size;j++)...{ printf("%d",matrix[i][j]); } printf(" "); }} int findPath( int x, int y) ... { printf("%d %d ",x,y); if((x==endx)&&(y==endy))...{ setMatrix(x,y,2); return 1; } if(getMatrix(x,y)!=0)...{ return 0; } setMatrix(x,y,2); if(findPath(x,y+1)||findPath(x,y-1)||findPath(x+1,y)||findPath(x-1,y)) return 1; else setMatrix(x,y,3); printf("%d %dset3 ",x,y); return 0;} main() ... { startx=starty=1; endx=endy=6; if(findPath(1,1)) print();}