c语言编程迷宫问题

while(map[endX][endY]!='O'){charch;ch=getchar();getchar();switch(ch){case's':if(map[s... while (map[endX][endY] != 'O') {

char ch;

ch = getchar();

getchar();

switch (ch) {

case 's':

if (map[startX + 1][startY] != '#') {

map[startX][startY] = ' ';

startX++;

map[startX][startY] = 'O';

}

break;

case 'w':

if (map[startX - 1][startY] != '#') {

map[startX][startY] = ' ';

startX--;

map[startX][startY] = 'O';

}

break;

case 'a':

if (map[startX][startY - 1] != '#') {

map[startX][startY] = ' ';

startY--;

map[startX][startY] = 'O';

}

break;

case 'd':

if (map[startX][startY + 1] != '#') {

map[startX][startY] = ' ';

startY++;

map[startX][startY] = 'O';

}

break;

default:

break;

}

printMap(map, row, col);

}

return 0;

}

while (map[endX][endY] != 'O')这一句是什么意思啊 为什么当不等于o时就程序结束
void printMap(char map[][6], int row, int col)

{

for (int i = 0; i < row; i++) {

for (int j = 0; j < col; j++) {

printf("%c", map[i][j]);

}

printf("\n");

}

}
展开
 我来答
捣蒜大师Edison
2015-01-12 · TA获得超过2963个赞
知道大有可为答主
回答量:3825
采纳率:77%
帮助的人:1304万
展开全部
当map[endX][endY] != 'O'的时候继续循环接收字符
也就是当map[endX][endY] = 'O'的时候跳出循环
因为小人的位置是='O'的位置,map[endX][endY] = 'O'时说明小人已经在出口了。
更多追问追答
追问
额额额- - 我自己没注意 还有个问题 
int row = (sizeof(map)/sizeof(char))/(sizeof(map[0])/sizeof(char));
这一句怎么计算的 行数啊 好繁琐啊
追答
sizeof(map)/sizeof(char)是所有的字符

sizeof(map[0])/sizeof(char)是一行的字符。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式