呆~ 2019-03-01 00:07 采纳率: 100%
浏览 394
已采纳

大佬们看看为什么move这个函数没有执行呢,谢谢!

代码如下,十分感谢
#include
#include
using namespace std;
const int length = 10;
const int width = 10;
char A[length][width];
void move(char* A[]);
int main()
{
for (int i = 0; i <= length - 1; i++)
for (int b = 0; b <= width - 1; b++)
{
if (b == 0 || b == width - 1)
{
A[i][b] = '1';
continue;
}
if (i == 0 || i == length - 1)
{
A[i][b] = '1';
continue;
}
A[i][b] = ' ';
}
A[1][0] = 'a';
A[length - 2][width - 1] = ' ';
for (int i = 0; i <= length - 1; i++) //把迷宫输出
for (int b = 0; b <= width - 1; b++)
{
cout << A[i][b];
if (b == width - 1)
cout << endl;
}
move(A[width]);

}

void move(char* A[])
{
int d;
int x = 1; int y = 0;
while ((d = _getch()) != 27)
{
    system("cls");
    switch (d)
    {
    case(72):if (A[x - 1][y] != '1')
    {
        A[x - 1][y] = A[x][y]; A[x][y] = ' '; x--;
    } break;
    case(80):if (A[x + 1][y] != '1')
    {
        A[x + 1][y] = A[x][y]; A[x][y] = ' '; x++;
    } break;
    case(75): if (A[x][y - 1] != '1')
    {
        A[x][y - 1] = A[x][y];  A[x][y] = ' '; y--;
    }break;
    case(77): if (A[x][y + 1] != '1')
    {
        A[x][y + 1] = A[x][y];  A[x][y] = ' '; y++;
    }
              break;
    }
    for (int i = 0; i <= length - 1; i++)
        for (int b = 0; b <= width - 1; b++)
        {
            cout << A[i][b];
            if (b == width - 1)
                cout << endl;
        }
    if (x == length - 2 && y == width - 1)
        break;

}
system("cls");
if (d == 27)
    cout << "不走程序直接开花";
else cout << "恭喜你,开花开花";
system("pause");

}

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-03-01 00:16
    关注

    你基本概念完全没有
    数组作为参数传给函数,退化为指针
    传递的数组实际上是数组元素的地址
    move(A[width]);
    你这么调用,相当于把A[width]作为首地址传给了move函数
    而A的下标范围是0~width-1,所以你根本就传了一个无效的地址。

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

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line