水题……
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <stdio.h> 2 #include <string.h> 3 #define N 11 4 char g[N][N]; 5 int t[N][N],n,m,k,cnt; 6 int dx[128],dy[128]; 7 int main() 8 { 9 int i,j; 10 dx['E']=0,dx['W']=0; 11 dx['S']=1,dx['N']=-1; 12 dy['E']=1,dy['W']=-1; 13 dy['S']=0,dy['N']=0; 14 while(scanf("%d%d",&n,&m)) 15 { 16 if(n==0) break; 17 scanf("%d",&k); 18 for(i=0;i<n;i++) 19 { 20 getchar(); 21 for(j=0;j<m;j++) 22 { 23 scanf("%c",&g[i][j]); 24 } 25 } 26 memset(t,-1,sizeof(t)); 27 i=0,j=k-1; 28 cnt=0; 29 while(!(i<0 || j<0 || i>=n || j>=m) && t[i][j]==-1) 30 { 31 int oi=i,oj=j; 32 t[i][j]=cnt++; 33 i+=dx[g[oi][oj]]; 34 j+=dy[g[oi][oj]]; 35 } 36 if(i<0 || j<0 || i>=n || j>=m) printf("%d step(s) to exit\n",cnt); 37 else printf("%d step(s) before a loop of %d step(s)\n",t[i][j],cnt-t[i][j]); 38 } 39 return 0; 40 }