猫捉老鼠(1019)

#include<stdio.h>

void main()
{
int a,i,j,n,ii,jj,iii,jjj,c,d,cout;char b[13][13],s;

while(scanf("%d",&a)!=EOF)
{

for(n=0;n<a;n++)
{scanf("%c",&s);

for(i=1;i<=10;i++)
for(j=1;j<=11;j++)
{scanf("%c",&b[i][j]);
if(b[i][j]=='m')
{ii=i;jj=j;}
if(b[i][j]=='c')
{iii=i;jjj=j;}}



c=1;d=1;cout=0;
for(i=0;i<=100000;i++)

{ switch(d)


{case 1:
{if(iii>1&&b[iii-1][jjj]!='*')
iii=iii-1;
else d=d+1;break;}
case 2:
{if(jjj<10&&b[iii][jjj+1]!='*')
jjj=jjj+1;
else d=d+1;break;}
case 3:
{if(iii<10&&b[iii+1][jjj]!='*')
iii=iii+1;
else d=d+1;break;}
case 4:
{if(jjj>1&&b[iii][jjj-1]!='*')
jjj=jjj-1;
else d=d-3;break;}}

switch(c) {case 1:
{if(ii>1&&b[ii-1][jj]!='*')
ii=ii-1;
else c=c+1;break;}
case 2:
{if(jj<10&&b[ii][jj+1]!='*')
jj=jj+1;
else c=c+1;break;}
case 3:
{if(ii<10&&b[ii+1][jj]!='*')
ii=ii+1;
else c=c+1;break;}
case 4:
{if(jj>1&&b[ii][jj-1]!='*')
jj=jj-1;
else c=c-3;break;}}


      
cout=cout+1;
if(ii==iii&&jjj==jj) break;}
if(i<100000)
printf("%d/n",cout);else printf("0/n");}}}

 

 

这道题蛮简单的,主要要注意空格的处理方式,否则经常提交不成功!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值