关于C语言迷宫问题:

只写到初始迷宫是就出问题啦,真不知道,哪错了啊,这么简单的代码,应该不会有问题啊,呵呵。麻烦大家帮我看看啊,非常感谢啦。代码如下:#include<stdio.h>#in... 只写到初始迷宫是就出问题啦,真不知道,哪错了啊,这么简单的代码,应该不会有问题啊,呵呵。麻烦大家帮我看看啊,非常感谢啦。
代码如下:
#include<stdio.h>
#include<string.h>
#define MAZESIZE 5
static char maze[MAZESIZE][MAZESIZE];
char *initmaze(){
char *p;
int i=0;
for(i=1;i<5;i++){
maze[i][0]='#';
}
for(i=0;i<5;i++){
maze[i][4]='#';
}
maze[0][1]='*';
maze[0][2]='#';
maze[0][3]='#';
maze[1][1]='*';
maze[1][2]='*';
maze[1][3]='*';
maze[2][3]='*';
maze[2][1]='#';
maze[2][2]='#';
maze[3][1]='*';
maze[3][2]='*';
maze[3][3]='*';
maze[4][1]='#';
maze[4][3]='#';
//set start and exit
maze[0][0]='!';
maze[4][2]='@';
p=&maze[0][0];
return p;
}
void showmaze(char *maze){
int i=0;
int j=0;
for(i=0;i<MAZESIZE;i++){
for(j=0;j<MAZESIZE;j++){
printf("%c",*(maze+i)+j);
}
printf("\n");
}
}
void main(){
char *maze;
maze=initmaze();
showmaze(maze);
getch();
}
展开
 我来答
西瓜妈妈育儿助手
2011-10-20 · 新手妈妈育儿助手,24小时在线的育儿专家
西瓜妈妈育儿助手
采纳数:158 获赞数:549

向TA提问 私信TA
展开全部
你的程序有点问题,char *initmaze(){}里输出和在void showmaze(char *maze){}的结果不一样。
for(i=0;i<MAZESIZE;i++){
for(j=0;j<MAZESIZE;j++){
// printf("%c",*(maze+i)+j);//这不正确,你这样并不是逐个输出数组的值
printf("%c",*(maze+i*MAZESIZE+j)); //改成这样就可以了
}
加上头文件 #include<conio.h>
更多追问追答
追问
能不能解释一下,这个为什么错了呢?非常感谢。
代码:
printf("%c",*(maze+i)+j);
追答
maze是个指针,指向的是个二维数组,i*MAAZESIZE相当于二维数组的第i行,这样写才能输出每一个元素*(maze+i)+j是第i个元素的元素值加上j,*的优先级要比+号高
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Cony
2011-10-20 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:32万
展开全部

没问题的,可以执行

结果是

更多追问追答
追问
是可以执行,但要的不是这个结果啊,我也不知道哪里出问题了。
追答
你要的是什么结果?题目都没有,没法解答。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式