| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:迷宫求解,有几个ERROR,请改下
取消只看楼主 加入收藏
学C很多年
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-9-8
收藏
 问题点数:0 回复次数:0 
迷宫求解,有几个ERROR,请改下
迷宫求解,但有点问题迷宫问题求解,我写的程序有问题?本人C才入门 我写了这段程序 但是运行不了 高手请帮忙查查错误
功能是:输入任意大小迷宫,用非递归方法求出一条走出迷宫的路径 并将路径输出
#include"linkstack.cpp"
#include"iostream.h"
struct node
{
int row;
int col;
int dir;
};
void main()
{
const int move[8][2]={{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,1}};
int row=8,col=11,start=1,end=9,i,j,k;
{
cout<<"输入行数和列数:"
cin>>row>>col;
row+=2;col+=2;
cout<<"请一行一行输入迷宫:\n";
for(i=1;i<row-1;i++)
{
cout<<"row"<<i":\t";
for(j=1;j<col-1;j++)
cin>>maze[i][j];
}
cout<<"请输入开始的列号和结束的列号:";
cin>>start>>end;
for(i=0;i<row;i++)
maze[i][0]=maze[i][col-1]=1;
for(i=0;i<col;i++)
maze[0][i]=maze[row-1][i]=1;
}
cout<<"maze:\n";
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
cout<<maze[i][j]<<" ";cout<<"\n";
}
cout<<"\n";
linkstack<node>stack;
node mynode;
mynode.row=1;
mynode.col=start;
mynode.dir=2;
stack.push(mynode);
int g,h,find=0;
while(!stack.isempty()&&!find)
{
stack.pop(mynode);
i=mynode.row;j=mynode.col;k=mynode.dir;
while(k<8)
{
g=i+move[k][0];
h=j+move[k][1];
if(g==row-2&&h==end&&maze[g][h]==0)
{
find=1;
maze[g][h]=2;break;
}
if(maze[g][h]==0)
{
maze[g][h]=2;
mynode.row=g;mynode.col=h;mynode.dir=k;
stack.push(mynode);
i=g;
j=h;
k=0;continue;
}
k=k+1;
}
}
if(find)
{
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
cout<<maze
搜索更多相关主题的帖子: 迷宫 求解 
2006-09-09 10:39
快速回复:迷宫求解,有几个ERROR,请改下
数据加载中...
 
   



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

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