#include <stdio.h> int main() { char a[6][6]; int dir[100][2], top, i, j, x, y; int up[2] = { -1,0 }, down[2] = { 1,0 }, left[2] = { 0,-1 }, right[2] = { 0,1 }; top = 0; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { scanf("%c", &a[i][j]); getchar(); } } dir[top][0] = 0; dir[top][1] = 0; for (;;) { if (dir[top][0] == 4 && dir[top][1] == 4) break; if (a[dir[top][0] + down[0]][dir[top][1]] == '0') { x = dir[top][0]; y = dir[top][1]; dir[++top][0] = x + down[0]; dir[top][1] = y; a[x][y] = '1'; } else if (a[dir[top][0]][dir[top][1] + right[1]] == '0') { x = dir[top][0]; y = dir[top][1]; dir[++top][0] = x ; dir[top][1] = y + right[1]; a[x][y] = '1'; } else if (a[dir[top][0]][dir[top][1] + left[1]] == '0') { x = dir[top][0]; y = dir[top][1]; dir[++top][0] = x; dir[top][1] = y + left[1]; a[x][y] = '1'; } else if (a[dir[top][0] + up[0]][dir[top][1]] == '0') { x = dir[top][0]; y = dir[top][1]; dir[++top][0] = x + up[0]; dir[top][1] = y; a[x][y] = '1'; } else { a[dir[top][0]][dir[top][1]] = '1'; top--; } } for (i = 0; i <= top; i++) { printf("(%d, %d)\n", dir[i][0], dir[i][1]); } return 0; } |
Double click to view unformatted code.