请问下列代码哪里错了?(输入五行五列,再输入一行指令,以0结尾)

#include<stdio.h>
void swap(char a, char b){
char temp = a;
a = b;
b = temp;
}

int main(){
char a[5][5];
char s[100];
int place_i, place_j;
int i, j;
for(i = 0; i < 5; i++){
for(j = 0; j < 5; j++){
scanf("%c", &a[i][j]);
if(a[i][j] == ' '){
place_i = i;
place_j = j;
}
}
getchar();
}

int m = 0;
while(s[m] != '0'){
    scanf("%c", &s[m]);
    if(s[m] == 'A'){
        swap(a[place_i][place_j], a[place_i-1][place_j]);
        place_i = place_i - 1;
    }
    if(s[m] == 'B'){
        swap(a[place_i][place_j], a[place_i+1][place_j]);
        place_i = place_i + 1;
    }
    if(s[m] == 'L'){
        swap(a[place_i][place_j], a[place_i][place_j-1]);
        place_j = place_j - 1;
    }
    if(s[m] == 'R'){
        swap(a[place_i][place_j], a[place_i][place_j+1]);
        place_j = place_j + 1;
    }
    m++;
}    

for(int i = 0; i < 5; i++){
    for(int j = 0; j < 5; j++)
        printf("%c", a[i][j]);
        
}
printf("\n");    
 

}