#include #include int main(int argc, char **argv) { int i, j; int size; char **M; if ( argc != 2 ) return 1; size = atoi(argv[1]); if ( size < 2 ) return 1; M = malloc(size * sizeof(char*)); for ( i = 0; i < size; i++ ) M[i] = malloc(size * sizeof(char)); for ( i = 0; i < size; i++ ) for ( j = 0; j < size; j++ ) M[i][j] = '0'; M[0][0] = 'X'; M[0][1] = '*'; M[1][0] = '*'; for ( i = 0; i < size; i++ ) for ( j = 0; j < size; j++ ) { if ( M[i][j] == '0' ) { if ( (i - 1 >= 0) && (M[i-1][j] == '*') ) M[i][j] = 'U'; else if ( (j - 1 >= 0) && (M[i][j-1] == '*') ) M[i][j] = 'L'; else if ( (j - 1 >= 0) && (i - 1 >= 0) && (M[i-1][j-1] == '*') ) M[i][j] = 'D'; else M[i][j] = '*'; } } for ( i = 0; i < size; i++ ) { for ( j = 0; j < size; j++ ) fprintf(stdout, "%c ", M[i][j]); fprintf(stdout, "\n"); } for ( i = 0; i < size; i++ ) free(M[i]); free(M); return 0; }