題目大意:一個機器人進入標記東西南北的圖,判斷是否能夠走出來。
題目分析:機器人可能走出來,也可能在圖中進入死循環,所以要定義一個數組標記該點是否走過。
題目代碼:
#include <iostream>
//#include <string.h>
using namespace std;
//#include <string.h>
using namespace std;
int main ()
{
introw,col,start;
inti,j;
{
introw,col,start;
inti,j;
intstep;
intnum;
charmap[100][100];
boolvisit[100][100];
while(cin>>row>>col>>start)
{
if(row==0 && col==0&& start==0)
break;
intnum;
charmap[100][100];
boolvisit[100][100];
while(cin>>row>>col>>start)
{
if(row==0 && col==0&& start==0)
break;
for(i=1;i<=row;i++)
for(j=1;j<=col;j++)
cin>>map[i][j];
for(j=1;j<=col;j++)
cin>>map[i][j];
i=1;
step=0;
num=0;
memset(visit,false,sizeof(visit));
step=0;
num=0;
memset(visit,false,sizeof(visit));
while(i>=1 &&i<=row &&start>=1 &&start<=col &&!visit[i][start])
{
{
if(map[i][start]=='W' )
{
visit[i][start]=true;
start--;
step++;
{
visit[i][start]=true;
start--;
step++;
continue;
}
if(map[i][start]=='E')
{
visit[i][start]=true;
start++;
step++;
}
if(map[i][start]=='E')
{
visit[i][start]=true;
start++;
step++;
continue;
}
if(map[i][start]=='N')
{
visit[i][start]=true;
i--;
step++;
continue;
}
if(map[i][start]=='S')
{
visit[i][start]=true;
i++;
step++;
continue;
}
if(map[i][start]=='N')
{
visit[i][start]=true;
i--;
step++;
continue;
}
if(map[i][start]=='S')
{
visit[i][start]=true;
i++;
step++;
continue;