标题:迷宫问题求改错
只看楼主
bjcs
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-9
 问题点数:0 回复次数:1 
迷宫问题求改错

编了个迷宫问题的程序,结果现在用C报错,不知道该如何处理了?望大家帮忙修改 谢谢

#include<stdio.h>
#define m 4
#define n 4
#define NUM m*n

typedef struct
{ int x,y;
int pre;
}sqtype;

sqtype sq[NUM];
int maze[m+2][n+2]={{1,1,1,1,1,1},
{1,0,1,0,0,1},
{1,0,0,1,1,1},
{1,1,0,0,0,1},
{1,1,1,1,0,1},
{1,1,1,1,1,1}};
typedef struct
{ int dx;
int dy;
}moved;

moved move[8]={{-1,0},
{-1,1},
{0,1},
{1,1},
{1,0},
{1,-1},
{0,-1},
{-1,-1}};

int shortpath2()
{
int front,rear;
int x,y,i,j,v;
front=rear=0;
sq[0].x=1;
sq[0].y=1;
sq[0].pre=-1;
maze[1][1]=-1;
while(front<=rear)
{x=sq[front].x;y=sq[front].y;
for(v=0;v<8;v++)
{i=x+move[v].dx;j=x+move[v].dy;
if(maze[i][j]==0)
{ rear++;
sq[rear].x=i;sq[rear].y=j;sq[rear].pre=front;
maze[i][j]=-1;
}
if(i==m && j==n)
{ printpath(sq,rear);
restore(maze);
return 1;}
}
front++;
}
return 0;
}

void printpath(int rear)
{ int i;
i=rear;
do
{printf("(%d,%d)?",sq[i].x,sq[i].y);
i=sq[i].pre;
}while(i!=-1);
}

main()
{
int i,j;
int flag;
for(i=0;i<m+1;i++)
for(j=0;j<n+1;j++)
printf("%6d",maze[i][j]);

flag=shortpath2();
}

搜索更多相关主题的帖子: 迷宫 改错 
2007-07-09 18:03
丛林野狼
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-7-9
得分:0 
还没看图论

海纳百川,有容乃大;壁立千仞,无欲则刚
2007-07-09 23:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-154098-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.249620 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved