求大神, 字符莫名其妙消失怎么回事?

#include
#include
#include
#include
// 无法进入中央区域-- 还有字符莫名其妙消失的问题
char map[20][20];
int i, j;

void move(int x, int y);

int main(void)
{
int move_x = 1, move_y = 1;

for (i = 0; i < 20; i++) 
    scanf ("%s", &map[i]);
map[move_x][move_y] = 'M';

for (i = 0; i < 20; i++)
    puts(map[i]);
    move(move_x, move_y);

return 0;

}

void move(int x, int y)
{
char ch;
while ((ch = getch()) != 'q')
{
if (ch == 'w' || ch == 's' || ch == 'a' || ch == 'd')
{

        map[x][y] = ' ';
        switch (ch){
            case 'w': map[--x][y] = 'M'; break;
            case 's': map[++x][y] = 'M'; break;
            case 'a': map[x][--y] = 'M'; break;
            case 'd': map[x][++y] = 'M'; break;
        }
    }
    else
    {
        printf ("不是有效按键!!!\n");
        continue;
    }
    // 重绘地图 
    system("cls");
    for(i = 0; i < 20; i++)
        puts(map[i]); 
}
写的不太严格--

for(i = 0; i < 20; i++)
puts(map[i]);
后面的这个是不是还少了一层啊,二维数组怎么只用一层for循环啊

你把move移到,main前面就好了