c-迷宫求解 递归方法 求助大牛帮忙解答疑问

问题描述

迷宫求解 递归方法 求助大牛帮忙解答疑问

//此题目是迷宫求解问题,起点是[0][0]位置,要到达的位置是[N-1][N-1]
//traverse()此函数为什么就能完成了迷宫求解问题呢?
//maze_ret[i][j] = maze[i][j]; 此语句具体含义是什么?
//maze_ret[11][11];此数组的具体用处是什么?
//我认为函数会把所有的为0的数据全部置为3,但是为什么没有呢?

#include

int N;
int maze[11][11];
int maze_ret[11][11];
void traverse(int, int);

int main(void) {
int tc, T, i, j;

freopen("input.txt", "r", stdin);

setbuf(stdout, NULL);

scanf("%d", &T);
for (tc = 0; tc < T; tc++) {
    scanf("%d", &N);
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            scanf("%d", &maze[i][j]);
        }
    }

    traverse(0, 0);

    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            printf("%d ", maze_ret[i][j]);
        }
        printf("n");
    }
    printf("nn");

}

return 0;

}

void traverse(int x, int y) {
int i, j;

maze[x][y] = 3;
if (x == N - 1 && y == N - 1) {
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            maze_ret[i][j] = maze[i][j];
        }
    }
}

if ((y < N - 1) && (maze[x][y + 1] == 0))
    traverse(x, y + 1);
if ((x < N - 1) && (maze[x + 1][y] == 0))
    traverse(x + 1, y);
if ((y >= 1) && (maze[x][y - 1] == 0))
    traverse(x, y - 1);
if ((x >= 1) && (maze[x - 1][y] == 0))
    traverse(x - 1, y);

}

时间: 2024-09-19 20:43:17

c-迷宫求解 递归方法 求助大牛帮忙解答疑问的相关文章

javascript-新人公司代码急求大牛帮忙解答

问题描述 新人公司代码急求大牛帮忙解答 <@web_css_js></@web_css_js> 是什么,看不懂了,求解! 解决方案 这个应该是某种公司内部的模板引擎定义的规范.要看你的具体公司内部的框架程序,或者开发这个项目的负责人提供的文档和信息.

求C语言大牛帮忙解答,输完password之后就异常终止了

问题描述 求C语言大牛帮忙解答,输完password之后就异常终止了 /*用户注册文件*/ #include #include #define N 1 struct User { char num[20]; char name[10]; char password[7]; float balance; }user[N]; int main() { int i; FILE *fp; //输入注册信息 for(i = 0;i < N; i++) { printf("input num &

新手求助:openstack安装后使用错误,请高手帮忙解答下,谢谢!

问题描述 按照教程,在ubuntu12.04上安装了单节点的Openstack,本机是在虚拟机上跑的ubuntu,开启了双网卡,一个是NAT,另外一个是Custom:Specificvirtualnetwork但是出现了以下问题:1.root@ubuntu:~#novalistERROR:stringindicesmustbeintegers,notstr2.网页进入本机IP,输入账号密码后出现:InternalServerErrorAnunexpectederroroccurredwhilep

高分悬赏,求求大神帮忙解答一下,快崩溃了

问题描述 高分悬赏,求求大神帮忙解答一下,快崩溃了 代码编译连接都ok,运行半天最后报错 ,就是调用 计算数乘nP的函数Point_Multiply 时就卡住了,单步跟踪到这就执行不下去了. 调试怀疑是内存溢出,水平有限,希望大神们帮帮我 Point Point_Calculate(Point P,Point Q) //点加和倍点加 { BigInteger r,temp0(0),temp2(2),temp3(3); Point R; if (Compare(P.x)&&Compare(P

多媒体-求大神帮忙解答用VS c++编写简易图像压缩软件带窗口的问题

问题描述 求大神帮忙解答用VS c++编写简易图像压缩软件带窗口的问题 因为我们老师布置了一门多媒体作业需要我们自己去设计一个简单的压缩算法来实现图片的压缩而且还要做成窗体的形式,因为本人是跨专业学的计算机这学期上的很累真的希望有好人能帮忙解答一下这到底是一个怎么样的流程,我的命令行程序怎么样才能和窗体连在其一起使用,还有几周要交了 .求助,求助,求助 重要的事要说三遍~~ 解决方案 http://www.cnblogs.com/tiandsp/archive/2012/12/03/279956

qml-大神帮忙解答一下,QML中怎么解析JSON数据并让它显示,不用java,jsonlistmodel

问题描述 大神帮忙解答一下,QML中怎么解析JSON数据并让它显示,不用java,jsonlistmodel 项目需要解析JSON数据,jsonlistmodel貌似Windows里使用不了,小白求助啊

dfs-A*算法的一些小问题求大家帮忙解答下!

问题描述 A*算法的一些小问题求大家帮忙解答下! A*算法怎么才能变为BFS?A*算法在什么情况下没有DFS搜索效果好?A*算法考什么保证它总能找到最优解? 谢谢各位大牛帮忙回答~ 解决方案 1.当树的上一层的f(n)比下一层的f(n)都小时,A*会先访问f(n)最小的,所以,会把上一层全部访问之后,再访问子层 2.最佳结果是在树的最左侧 3. 如果有个非优解G2,那么f(G2)=h(G2)+g(G2),因为G2是一个解,所以h(G2)=0,所以,f(G2)=g(G2),假设a*的解是G,那么f

关于继承的问题,求帮忙解答下,谢谢

问题描述 关于继承的问题,求帮忙解答下,谢谢 public class Demo { public static void main(String[] args){ new B(); } } class A { void aFunction(){ System.out.println("AFunction"); } A(){ System.out.println("A"); aFunction(); System.out.println("after A&

extjs-Extjs Ext.ux.form.LovCombo 多选问题,求大牛帮忙啊!

问题描述 Extjs Ext.ux.form.LovCombo 多选问题,求大牛帮忙啊! 当选择的时候,离开焦点到空白的时候, 多选下拉框会把所有相同名字都显示出来, 这个问题怎么解决........ 附代码 this.billComboBox = new Ext.ux.form.LovCombo({ store : this.billStore, emptyText : '请选择', name : 'billName', allowBlank : false, mode : 'local',