the title is as follows:
the robot walks the maze
the maze consists of N W S E stepping on N, stepping on N, stepping on W, walking on the left, stepping on S, stepping on E, and stepping on E,
input the number of rows in the maze is not greater than the initial number of 10 robots (note that the number of columns starts from 1) to determine whether or not to get out of the maze. The number of steps out of the output
multiple groups of input ends in 2000
example
input
4 6 5
N N N N S N
N N N S W N
N N S W N N
N S W N N N
3 5 2
N S N N N N
N S W N N N
N E N N N N
0 0 0
output
7
no
when you enter the first group, you can go out and, um, continue to execute, but when you enter the second set of samples, the program falls into an endless loop. Cin > > where it should be entered but is directly skipped, it falls into an endless loop. I don"t understand why, ask for the boss"s advice
.my code
-sharpinclude "stdafx.h"
-sharpinclude<iostream>
using namespace std;
int main()
{
char str[10][10];
while(1)
{
int a,b,c;
cin>>a>>b>>c;
if(a==0&&b==0&&c==0)break;
for(int i=0;i<a;iPP)
{
for(int j=1;j<=b;jPP)
{
cin>>str[i][j];
}
}
int count,d;
d=count=0;
while(count<=a*b)
{
if(str[d][c]=="N")
{
countPP;
d=d-1;
if(d<0)
{
break;
}
}
if(str[d][c]=="S")
{
countPP;
d=d+1;
if(d>=a)
{
break;
}
}
if(str[d][c]=="W")
{
countPP;
c=c-1;
if(c<0)
{
break;
}
}
if(str[d][c]=="E")
{
countPP;
c=c+1;
if(d>b)
{
break;
}
}
}
if(count<=a*b)
{
cout<<count<<endl;
}
else
{
cout<<"no"<<endl;
}
}
system("pause");
return 0;
}