#include #include #define MAXSIZE 100 #define LOCCHR '.' int count = 0; void prnpaths ( int i , int j , int m , int n , char A[][MAXSIZE] ) { int k; if ((i > m) || (j > n)) return; if ((i == m) && (j == n)) { ++count; printf("\n Path %d\n", count); for (k=0; k<=n; ++k) printf(" %s\n", A[k]); return; } if (i < m) { A[n-j][i+1] = LOCCHR; prnpaths(i+1,j,m,n,A); A[n-j][i+1] = ' '; } if (j < n) { A[n-j-1][i] = LOCCHR; prnpaths(i,j+1,m,n,A); A[n-j-1][i] = ' '; } } int main () { char A[MAXSIZE][MAXSIZE]; int i, j, m, n; printf("m = "); scanf("%d", &m); printf("n = "); scanf("%d", &n); for (i=0; i<=n; ++i) { for (j=0; j<=m; ++j) A[i][j] = ' '; A[i][m+1] = '\0'; } A[n][0] = LOCCHR; prnpaths(0,0,m,n,A); exit(0); }