很水的模拟题,把-号写成了=号,找了一个小时我也是醉了,但发现自己比原来还是进步了

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 100;
char map[maxn][maxn];
int vis[maxn][maxn];
int main()
{
int m,n,x;
while(scanf("%d%d",&m,&n)&&m&&n){
scanf("%d",&x);
getchar();
for(int i=0;i<m;i++){
scanf("%s",map[i]);
}
memset(vis,0,sizeof(vis));
int i=0,j=x-1;
int step=0,loops=0;
vis[i][j] = (++step);
while(true){
if(map[i][j] == 'N') { i-=1; if(vis[i][j]) loops = vis[i+1][j]-vis[i][j]+1; }
else if(map[i][j] == 'S') { i+=1; if(vis[i][j]) loops = vis[i-1][j]-vis[i][j]+1; }
else if(map[i][j] == 'E') { j+=1; if(vis[i][j]) loops = vis[i][j-1]-vis[i][j]+1; }
else if(map[i][j] == 'W') { j-=1; if(vis[i][j]) loops = vis[i][j+1]-vis[i][j]+1; }
if(vis[i][j]){
printf("%d step(s) before a loop of %d step(s)\n",vis[i][j]-1,loops);
break;
}
if(i<0 || j<0 || i>m-1 || j>n-1){
printf("%d step(s) to exit\n",step);
break;
}
vis[i][j] = (++step);
}

}
return 0;
}