下面是全部代码
#include <stdio.h>
#include <string.h>
int main ()
{
char a[5][5],b[100];int i,j,c,m,n,d,l=0;
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]==a[2][1])
{a[2][1]='!';j++;}
}
printf("\n");}
printf("请输入指令:");
scanf("%s",b);
c=strlen(b);
m=2;n=1;
for(i=0;i<c;i++)
{
int y=0;
while(l==0 && y==0)
{
if(b[i]=='A')
{
if(m>0)
{a[m][n]=d;d=a[m-1][n];a[m-1][n]=a[m][n];y=1;}
else
{l=1;break;}
}
else if(b[i]=='B')
{
if(m<4)
{a[m][n]=d;d=a[m+1][n];a[m+1][n]=a[m][n];y=1;}
else
{l=1;break;}
}
else if(b[i]=='L')
{
if(n>0)
{a[m][n]=d;d=a[m][n-1];a[m][n-1]=a[m][n];y=1;}
else
{l=1;break;}
}
else if(b[i]=='R')
{
if(n<4)
{a[m][n]=d;d=a[m][n+1];a[m][n+1]=a[m][n];y=1;}
else
{l=1;break;}
}
else
printf("输入错误!重新输入:\n");
}
}
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%c",a[i][j]);
printf("\n");}
}
下面是我在C-free里面调试的代码:
问题:为什么换行字符'\n'也进入了数组?该如何避免这种情况?