| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 990 人关注过本帖
标题:[求助]迷宫问题请大家一起解决下!
取消只看楼主 加入收藏
chenfang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-11-29
收藏
 问题点数:0 回复次数:1 
[求助]迷宫问题请大家一起解决下!

写出算法的实现过程、子函数的作用以及测试数据
#include"stdio.h"
#include"stdlib.h"
#define m 4
#define n 4

struct stype
{int x,y,pre;
}sq[400];
int mg[m+2][n+2];
int zx[9],zy[9];

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

void mglj()
{int i,j,x,y,front,rear,find,v;
sq[1].x=1;sq[1].y=1;sq[1].pre=0;find=0;
front=rear=1; mg[1][1]=-1;
while(front<=rear&&!find)
{x=sq[front].x;
y=sq[front].y;
for(v=1;v<=8;v++)
{i=x+zx[v];
j=y+zy[v];
if(mg[i][j]==0)
{rear++;
sq[rear].x=i;
sq[rear].y=j;
sq[rear].pre=front;
mg[i][j]=-1;
}
if(i==m&&j==n)
{printlj(rear);
find=1;
}
}
front++;
}
if(!find) printf("no way\n");
}

void main()
{int i,j;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
scanf("%d",&mg[i][j]);
for(i=0;i<=m+1;i++)
{mg[i][0]=1;mg[i][n+1]=1;
}
for(j=0;i<=n+1;i++)
{mg[0][j]=1;mg[m+1][j]=1;
}
zx[1]=-1;zx[2]=-1;zx[3]=0;zx[4]=1;
zx[5]=1;zx[6]=1;zx[7]=0;zx[8]=-1;
zy[1]=0;zy[2]=1;zy[3]=1;zy[4]=1;
zy[5]=0;zy[6]=-1;zy[7]=-1;zy[8]=-1;
mglj();
}

搜索更多相关主题的帖子: 迷宫 
2006-11-29 11:46
chenfang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-11-29
收藏
得分:0 
大家帮帮我吧~!!
2006-11-29 11:46
快速回复:[求助]迷宫问题请大家一起解决下!
数据加载中...
 
   



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

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