| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 750 人关注过本帖
标题:迷宫问题求改错
只看楼主 加入收藏
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
快速回复:迷宫问题求改错
数据加载中...
 
   



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

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