uva227紫书上的 。。。。。。。。。。

![![图片说明](https://img-ask.csdn.net/upload/201605/30/1464618462_978146.jp

样例输入
TRGSJ
XDOKI
M VLN
WPABE
UQHCF
ARRBBL0
ABCDE
FGHIJ
KLMNO
PQRS
TUVWX
AAA
LLLL0
ABCDE
FGHIJ
KLMNO
PQRS
TUVWX
AAAAABBRRRLL0
样例输出
Puzzle #1:
T R G S J
X O K L I
M D V B N
W P A E
U Q H C F
Puzzle #2:
A B C D
F G H I E
K L M N J
P Q R S O
T U V W X
Puzzle #3:
This puzzle has no final configuration.
这是我的代码:求大神帮忙看看,为什么会wa
#include
void fac(char );
char a[10][10],b[100],c,count=0;
int x=1,m,n;
int main(){
char d;
int i,j;
while(scanf("%c",&d)&&d!='Z'){
a[0][0]=d;
for(i=1;i<=4;i++)
scanf("%c",&a[0][i]);
getchar();
for(i=1;i<=4;i++){
for(j=0;j<=4;j++)
scanf("%c",&a[i][j]);
getchar();}
for(i=0;i<=4;i++)
for(j=0;j<=4;j++)
if(a[i][j]==32)
{m=i;
n=j;}
for(i=0;;i++){
scanf("%c",&b[i]);
if(b[i]=='0')
break;
}
getchar();
for(i=0;b[i]!=0;i++){
fac(b[i]);
if(count)
break;
}
if(count==0){
printf("Puzzle #%d:\n",x);
for(i=0;i<=4;i++){
for(j=0;j<=4;j++)
printf("%c ",a[i][j]);
printf("\n");
}
printf("\n");
}
count=0;
x++;
}
}
void fac(char c) {
switch(c){
case 'A':if(m-1>=0){
a[m][n]=a[m-1][n];
a[m-1][n]=' ';
m--;
}
else {printf("Puzzle #%d:\nThis puzzle has no final configuration.\n",x);count=1;}break;
case 'B':if(m+1<=4){
a[m][n]=a[m+1][n];
a[m+1][n]=' ';
m++;
}
else {printf("Puzzle #%d:\nThis puzzle has no final configuration.\n",x);count=1;}break;
case 'L':if(n-1>=0){
a[m][n]=a[m][n-1];
a[m][n-1]=' ';
n--;
}
else {printf("Puzzle #%d:\nThis puzzle has no final configuration.\n",x);count=1;}break;
case 'R':if(n+1<=4){
a[m][n]=a[m][n+1];
a[m][n+1]=' ';
n++;
}
else {printf("Puzzle #%d:\nThis puzzle has no final configuration.\n",x);x++;count=1;}break;
default: ;
}

}

这个题要是我英语好的话早就过了。一直没搞懂没那个空行是怎么输的。卡了我好几天,用了各种写法。迫不及待的想交这个题,因为看网上的代码简直乱的要死,烦透了。话不多说,英语不好是硬伤。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int main()......
答案就在这里:uva227
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

 #include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;

char maps[5][7];
char cmd[1001];

int main()
{
    int cases = 0;
    while (gets(maps[0])) {
        if (maps[0][0] == 'Z') break;
        for (int i = 1 ; i < 5 ; ++ i)
            gets(maps[i]);
        int b_x = 0,b_y = 0;
        for (int i = 0 ; i < 5 ; ++ i)
            for (int j = 0 ; j < 5 ; ++ j)
                if (maps[i][j] == ' ') {
                    b_x = i;b_y = j;
                    break;
                }
        int count = 0;
        while (~scanf("%c",&cmd[count]))
            if (cmd[count] != '0') count ++;
            else break;
        cmd[count] = 0;getchar();

        int flag = 0,x = b_x,y = b_y;
        for (int i = 0 ; cmd[i] ; ++ i) {
            switch(cmd[i]) {
                case 'A':   x = b_x-1;y = b_y; break;
                case 'B':   x = b_x+1;y = b_y; break;
                case 'L':   x = b_x;y = b_y-1; break;
                case 'R':   x = b_x;y = b_y+1; break;
            }

            if (x < 0 || x > 4 || y < 0 || y > 4) {
                flag = 1;break;
            }else {
                maps[b_x][b_y] = maps[x][y];
                maps[x][y] = ' ';
                b_x = x; b_y = y;
            }
        }

        if (cases ++) printf("\n");
        printf("Puzzle #%d:\n",cases);

        if (flag)
            printf("This puzzle has no final configuration.\n");
        else {
            for (int i = 0 ; i < 5 ; ++ i) {
                printf("%c",maps[i][0]);
                for (int j = 1 ; j < 5 ; ++ j)
                    printf(" %c",maps[i][j]);
                printf("\n");
            }
        }
    }
    return 0;
}