地址:http://acm.hdu.edu.cn/showproblem.php?pid=1035
题意:看小人是否能走出迷宫。
mark:wa了一次,又是循环跳出条件出问题了……
代码:
#include <stdio.h> #include <string.h> int main() { char a[15][15]; int m,n,s,sum,b[15][15]; int i,j,k; while(scanf("%d%d", &m, &n), m+n) { scanf("%d", &s); for(i = 0; i < m; i++) scanf("%s", a[i]); memset(b, 0, sizeof(b)); i = 0; sum = 1; j = s-1; b[i][j] = 1; while(1) { if(a[i][j] == 'N') i--; else if(a[i][j] == 'E') j++; else if(a[i][j] == 'W') j--; else if(a[i][j] == 'S') i++; sum++; if(i >= 0 && i < m && j >= 0 && j < n) { if(b[i][j]) {printf("%d step(s) before a loop of %d step(s)\n", b[i][j]-1, sum-b[i][j]);break;} else b[i][j] = sum; } else {printf("%d step(s) to exit\n", sum-1);break;} } } return 0; }