c语言实现迷宫最优路径选择

c语言实现迷宫最优路径选择

ID:44714009

大小:60.50 KB

页数:6页

时间:2019-10-25

c语言实现迷宫最优路径选择_第1页
c语言实现迷宫最优路径选择_第2页
c语言实现迷宫最优路径选择_第3页
c语言实现迷宫最优路径选择_第4页
c语言实现迷宫最优路径选择_第5页
资源描述:

《c语言实现迷宫最优路径选择》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、中国计量学院实验报告实验课程:算法与数据结构实验名称:迷宫的最优路径班级:学号:姓名:实验日期:2013-5-20一.实验题目:输入一迷宫查找并输出迷宫的最优路径实验成绩:指导教师:一.算法说明1.定义一个结构体来表示起点和末点的坐标,定义一个数组来存放迷宫.structelem{intx;//行inty;//列};//定义结构体intM[10][10];2.给数组中空白处赋上从起点到该处步骤的值.intfind(intn){for(i=0;i<9;i++)for(j=0;j<10;j++){if(M[i][j]==n){{if(M[i][j+1]

2、==0)M[i][j+1]=n+1;elseif(M[i][j+1]>n+1)M[i][j+1]=n+1;}{if(M[i+1][j]==0)M[i+1][j]=n+1;elseif(M[i+1][j]>n+1)M[i+1][j]=n+1;}{if(M[i][j-1]==0)M[i][j-1]=n+1;elseif(M[i][j-1]>n+1)M[i][j-1]=n+1;}{if(M[i-1][j]==0)M[i-1][j]=n+1;elseif(M[i-1][j]>n+1)M[i-1][j]=n+1;}}}}3.给最优路径附上特定的值,方便最后的

3、输出.for(;;){if(M[q.x+1][q.y]==(n-1)){q.x++;M[q.x][q.y]=0;}else{if(M[q.x][q.y-1]==(n-1)){q.y--;M[q.x][q.y]=0;}else{if(M[q.x-1][q.y]==(n-1)){q.x--;M[q.x][q.y]=0;}elseif(M[q.x][q.y+1]==(n-1)){q.y++;M[q.x][q.y]=0;}}}n--;if(e.x==q.x&&e.y==q.y){M[e.x][e.y]=0;break;}}一.测试结果二.分析与探讨程序结果

4、正确,但是没有涉及到栈内容,使用栈可以对程序进一步改进。三.附录:源代码中国计量学院实验报告#include#includestructelem{intx;//行inty;//列intdi;//方向,di=1代表右,di=2代表下,di=3代表左,di=4代表上};//定义结构体structeleme,q;intM[10][10]={{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},{-1,0,0,-1,0,0,0,-1,0,-1},{-1,0,0,-1,0,0,0,-1,0,-1},{-1,0,

5、0,0,0,-1,-1,0,0,-1},{-1,0,-1,-1,-1,0,0,0,0,-1},{-1,0,0,0,-1,0,0,0,0,-1},{-1,0,-1,0,0,0,-1,0,0,-1},{-1,0,-1,-1,-1,0,-1,-1,0,-1},{-1,-1,0,0,0,0,0,0,0,-1},{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}};intn=1,i,j;//从起点到某个位置的步骤intfind(intn){for(i=0;i<9;i++)for(j=0;j<10;j++){if(M[i][j]==n){{if(M

6、[i][j+1]==0)M[i][j+1]=n+1;elseif(M[i][j+1]>n+1)M[i][j+1]=n+1;}{if(M[i+1][j]==0)M[i+1][j]=n+1;elseif(M[i+1][j]>n+1)M[i+1][j]=n+1;}{if(M[i][j-1]==0)M[i][j-1]=n+1;elseif(M[i][j-1]>n+1)M[i][j-1]=n+1;}{if(M[i-1][j]==0)M[i-1][j]=n+1;elseif(M[i-1][j]>n+1)M[i-1][j]=n+1;}}}}intmain(voi

7、d){intk;/*printf("请输入迷宫:");for(i=0;i<10;i++)for(j=0;j<10;j++)scanf("%d",&M[i][j]);*/printf("迷宫为:");for(i=0;i<10;i++)//显示迷宫for(j=0;j<10;j++){if(M[i][j]==-1)printf("#");elseprintf("");if(j==9)printf("");}printf("请输入入口的横纵坐标:");scanf("%d%d",&e.x,&e.y);if(M[e.x][e.y]==-1){p

8、rintf("迷宫走不通");}M[e.x][e.y]=n;printf("请输入出口的横纵坐标:");scanf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。