#include <stdio.h>
#include <string.h>
int main(void)
{
char grid[12][12];
int flag[12][12];
int cflag[12][12];
for(;;)
{
printf("123455\n");
int row,line,start,i,j;
memset(flag[0],0,sizeof(flag));//×¢Òâsizeof(int)*12*12Ò²¿ÉÒÔÕâÑùд
memset(grid,'0',sizeof(grid));
scanf("%d %d %d",&line,&row,&start);
if(line==0&&row==0&&start==0)//×¢ÒâÕâÑù²»¶ÔӦΪËüÃǶ¼Îª0ʱ½á¹ûÒÀ¾É¶¼Îª0²»ÄÜÌø³öÑ»·
break;
for(i=1;i<=line;i++)
for(j=1;j<=row;j++)
while((grid[i][j]=getchar())==' '||grid[i][j]=='\n'||grid[i][j]=='\t');
int count;
line=1;
row=start;
flag[line][row]=1;
cflag[line][row]=0;
for(count=0;;count++)//Èç¹û¿ÉÒÔ×ßÄÇô¾Í+1£¬²»ÄÜ×ß¾ÍÁ˾ÍÖ±½Ó´òÓ¡ÒѾ×ß¹ýµÄ·
{
//printf("flag[%d][%d]=%d grid[%d][%d]=%c\n",line,row,flag[line][row],line,row,grid[line][row]);
if(grid[line][row]=='S')
line++;
else if(grid[line][row]=='N')
line--;
else if(grid[line][row]=='W')
row--;
else if(grid[line][row]=='E')
row++;
else if(grid[line][row]=='0')
{
printf("%d step(s) to exit\n",count);
break;
}
flag[line][row]++;
if(flag[line][row]==2)
{
printf("%d step(s) before a loop of %d step(s)\n",cflag[line][row],count-cflag[line][row]+1);
break;
}
cflag[line][row]=count+1;
}
}
return 0;
}
poj1573
最新推荐文章于 2023-01-18 11:54:58 发布