说明

​由于迷宫的设计,老鼠走迷宫的入口至出口路径可能不只一条,如何求出所有的路径呢?

​解法

​求所有路径看起来复杂但其实更简单,只要在老鼠走至出口时显示经过的路径,然后退回上一格重新选择下一个位置继续递回就可以了,比求出单一路径还简单,我们的程式只要作一点修改就可以了。

​#include

"stdio.h"

#include "stdlib.h"

void visit(int,int);

int startI = 1, startJ = 1; // 入口

int endI = 7, endJ = 7; // 出口

int maze[9][9] = {{2, 2, 2, 2, 2, 2, 2, 2, 2},

{2, 0, 0, 0, 0, 0, 0, 0, 2},

{2, 0, 2, 2, 0, 2, 2, 0, 2},

{2, 0, 2, 0, 0, 2, 0, 0, 2},

{2, 0, 2, 0, 2, 0, 2, 0, 2},

{2, 0, 0, 0, 0, 0, 2, 0, 2},

{2, 2, 0, 2, 2, 0, 2, 2, 2},

{2, 0, 0, 0, 0, 0, 0, 0, 2},

{2, 2, 2, 2, 2, 2, 2, 2, 2}};

void main()

{

int i,j;

printf("maze:\n");

for(i=0;i<7;i++){

for(j=0;j<7;j++)

if(maze[i][j]==2)

printf("█");

else

printf(" ");

printf("\n");

}

visit(startI,startJ);

}

void visit(int i,int j){

int m,n;

maze[i][j]=1;

if(i==endI&&j==endJ){

printf("\n显示路径: \n");

for(m=0;m<9;m++){

for(n=0;n<9;n++)

if(maze[m][n]==2)

printf("█");

else if(maze[m][n] == 1)

printf("*");

else

printf(" ");

printf("\n");

}

}

if(maze[i][j+1]==0) visit(i,j+1);

if(maze[i+1][j]==0) visit(i+1,j);

if(maze[i][j-1]==0) visit(i,j-1);

if(maze[i-1][j]==0) visit(i-1,j);

maze[i][j]=0;

}

c语言老鼠迷宫程序,C语言经典算法——老鼠走迷宫(二)相关推荐

  1. 老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)

    C语言经典算法 - 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下 ...

  2. 棋盘算法c语言程序,C语言经典算法 - 骑士走棋盘

    搜索热词 @H_301_0@下面是编程之家 jb51.cc 通过网络收集整理的代码片段.@H_301_0@编程之家小编现在分享给大家,也给大家做个参考. 说明骑士旅游(Knight tour)在十八世 ...

  3. C语言计算日期间隔天数的经典算法解析

    C语言计算日期间隔天数的经典算法解析 网上看到一个计算日期间隔的方法,很高深,很巧妙.代码如下: #include <stdio.h> #include <stdlib.h> ...

  4. 经典算法研究系列:二、Dijkstra 算法初探

    经典算法研究系列:二.Dijkstra 算法初探  July   二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...

  5. JAVA算法:走迷宫回溯算法设计(JAVA版本)

    JAVA算法:走迷宫回溯算法设计(JAVA版本) 迷宫数组 int[][] maze = {                 {0, 1, 0, 0, 0},                 {0, ...

  6. python求解迷宫问题,配js实现的走迷宫动画,动起来才有意思~

    前言 继昨天手动实现了走迷宫问题,虽然是实现了,但是看到被我画成乱七八糟的草稿纸,总是觉得不爽,不仔细看,又得把自己给走迷糊了,于是自己使用js实现了一下,效果还不错!先看一下展示效果吧!(文末配有j ...

  7. 趣味c语言代码,趣味程序C语言

    <趣味程序C语言>由会员分享,可在线阅读,更多相关<趣味程序C语言(36页珍藏版)>请在人人文库网上搜索. 1.趣味程序导学C语言,你玩过电脑游戏吗?,你喜欢电脑游戏吗?,电脑 ...

  8. c语言bfs算法走迷宫,使用广度优先算法(BFS)走迷宫

    前面介绍广度优先算法的时候提及了多次走迷宫,我们就真正的走一次迷宫试试! 要求如下: 输入给出迷宫矩阵的行数和列数,并给出迷宫(使用点 (.) 表示路,使用星 (*) 表示障碍物,使用S表示起点,T表 ...

  9. LRU算法,走迷宫,数根,星际战争

    问答题1 问答题1:一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用 LRU 算法,缺页数是几次? LRU 算法是先置换出不常用的页面,如果一个页面刚刚被访问过, ...

最新文章

  1. mysql raw_Oracle中的Raw类型解释
  2. golang range 遍历读写数据问题
  3. css制作圆角矩形,CSS绘制圆角矩形图形的效果
  4. 【深度学习】从R-CNN到Mask R-CNN的思维跃迁
  5. 建立最简单的repo服务器实例讲解
  6. NSUserDefaults的用法(轻量级本地数据存储)
  7. catv系统主要有哪三部分组成_光纤放大器在DWDM传输系统中的应用
  8. php用go做跳转翻页,go.php跳转不输出权重的跳转方式真的有用么?
  9. python不是内部文件_已安装python,但是出现‘python’不是内部或外部命令,也不是可运行的程序或批处理文件。...
  10. mysql排序区分大小写吗_MySQL操作数据时区分大小写
  11. 前端集成解决方案(转)
  12. Java案例:清洗网址垃圾字符
  13. DekBox代币DEK已完成首次减产
  14. caffe的python接口学习(1):生成配置文件
  15. linux就该这么学
  16. (*长期更新)软考网络工程师学习笔记——Section 13 Linux网络配置命令
  17. 不用加减乘除做四则运算
  18. 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
  19. 工具-python包-虚拟环境管理(99.4.1)
  20. mapbox 绘制路线并展示路线长度

热门文章

  1. k8s garbage collector源码分析(1)-启动分析
  2. FileBeat系列:multiline的pattern negate match使用方法
  3. 万圣节各种搞怪的南瓜
  4. MODBUS RTU通信协议 CRC16校验
  5. codeMirror自定义关键词颜色颜色
  6. 【USACO题库】1.1.4 Broken Necklace破碎的项链
  7. 同ip网站查询,同服务器网站查询,如何检查同IP下的网站是否安全
  8. 如何用计算机名查看是否正确,IP能访问和计算机名不能访问解决办法
  9. python 扯线木偶_年轻人裸辞后过得怎样?
  10. 汽车中的IGBT——————转载