典型模拟水题 注意条件判断
#include<stdio.h>
int x,y;
int main()
{ int i,j;char c,t;
char a[5][5];int count=0;
for(;;)
{
int flag=1;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
a[i][j]=getchar();
if(a[0][0]=='Z') return 0;
if(a[i][j]==' ') {x=i;y=j;}
}
getchar();
}
while((c=getchar())!='0')
{
if(c=='A' && x - 1 >= 0)
{
t=a[x][y];a[x][y]=a[x-1][y];a[x-1][y]=t;x--;
}
else if(c=='B'&&x + 1 <= 4)
{
t=a[x][y];a[x][y]=a[x+1][y];a[x+1][y]=t;x++;
}
else if(c=='L'&&y - 1 >= 0)
{
t=a[x][y];a[x][y]=a[x][y-1];a[x][y-1]=t;y--;
}
else if(c=='R'&& y + 1 <= 4)
{
t=a[x][y];a[x][y]=a[x][y+1];a[x][y+1]=t;y++;
}
else if(c!='\n')
{
flag=0;
}
}
if(count) printf("\n");
printf("Puzzle #%d:\n",++count);
if(flag) {
for(i=0;i<5;i++)
{
printf("%c %c %c %c %c\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
}
}
else
printf("This puzzle has no final configuration.\n");
getchar();
}
return 0;
}