qq_37296877 2017-03-12 04:27 采纳率: 61%
浏览 804
已采纳

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

#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]); 
}
写的不太严格--
  • 写回答

2条回答 默认 最新

  • errors5835 2017-03-12 10:35
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站