#include #define N 10 typedef struct { int map[N][N]; int step; int msize, nsize; } SMAP; void routing(int, int, SMAP); void mapprint(SMAP); int pat = 0; /* ゴールに到達したパターン数を記録するための外部変数 */ int main() { SMAP smap; int i, j; printf("マスのサイズを入力して下さい(msize, nsize):\n"); scanf("%d%d", &smap.msize, &smap.nsize); /* smapの初期化 */ for ( i=0 ; i=smap.msize || n>=smap.nsize ) return; if( m==0 && n==0 ){ pat++; smap.map[n][m] = smap.step; mapprint( smap ); return; } if( smap.map[n][m] != 0 ) return; smap.map[n][m] = smap.step; smap.step++; routing(m-1,n ,smap); routing(m ,n-1,smap); routing(m+1,n ,smap); routing(m ,n+1,smap); return; } void mapprint(SMAP smap) { int i, j; printf("パターン:%d, 経路長:%d\n", pat, smap.step); for ( i=0 ; i