题目

解决代码及点评


/************************************************************************/
/*
82. 试编写一个程序寻找一条通过迷宫的路径。
一个迷宫可以看成是一个矩阵(数组),它有一个入口单元和一个出口单元,图中阴影处表示障碍物,白格表示可以通行的道路。
只能从入口进去,从出口出去,中间只能通过白格子(即只能从一个白格单元走到一个相邻的白格单元,相邻指上、下、左、右四个单元)
,遇见死路时,退回去重找其它路。用户可设入口处(1,1)为2,出口位置(5,6)为-1,白格处送入0,障碍物位置送入1。5表示走过的
*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h> bool GO82(int arr[][6],int i,int j,int kk)
{ bool isfound=false;
if (i==4&&j==5)
{
isfound=true;
printf("\n大爷出来了\n");
for (int p=0;p<6;p++)
{
for (int q=0;q<6;q++)
{
if (arr[p][q]==5)
{
printf("%d%d",p,q);
}
else
{
printf(" ");
}
}
printf("\n");
}
}
else
{
for (int m=0;m<=3;m++)
{
#pragma region 条件匹配
if (m==0)
{ if (kk==2)
continue;
if (arr[i][j+1]==0&&j+1<6)
{ j=j+1;
arr[i][j]=5;
}
else
continue;
}
else if (m==1)
{ if (kk==3)
continue;
if (arr[i+1][j]==0&&i+1<6)
{ i=i+1;
arr[i][j]=5;
}
else
continue;
}
else if (m==2)
{ if (kk==0)
continue; if (arr[i][j-1]==0&&j-1>=0)
{j=j-1;
arr[i][j]=5;
}
else
continue;
}
else if (m==3)
{
if (kk==1)
continue;
if (arr[i-1][j]==0&&i-1>=0)
{i=i-1;
arr[i][j]=5;
}
else
continue;
}
#pragma endregion 条件匹配 isfound=GO82(arr,i,j,m);
if (!isfound)
{
#pragma region 条件匹配
if (m==0)
{ arr[i][j]=0;
j=j-1;
} else if (m==1)
{
arr[i][j]=0;
i=i-1; }
else if (m==2)
{
arr[i][j]=0;
j=j+1; }
else if (m==3)
{
arr[i][j]=0;
i=i+1; }
#pragma endregion 条件匹配
}
}
} return isfound;
}
void main()
{ int arr[6][6]={0};
arr[0][0]=2;
//arr[4][5]=-1;
arr[0][1]=1;
arr[0][5]=1;
arr[1][3]=1;
arr[1][5]=1;
arr[2][0]=1;
arr[2][2]=1;
arr[2][5]=1;
arr[3][3]=1;
arr[3][4]=1;
arr[3][5]=1;
arr[4][1]=1;
arr[4][2]=1;
arr[5][4]=1;
arr[5][5]=1;
bool temp= GO82(arr,0,0,-10); if (temp==false)
{
printf("死路\n");
} system("pause");
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行

程序运行结果

代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn






基于visual Studio2013解决C语言竞赛题之1082迷宫的更多相关文章

  1. 基于visual Studio2013解决C语言竞赛题之0401阶乘

      题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include ...

  2. 基于visual Studio2013解决C语言竞赛题之0205位数求和

     题目

  3. 基于visual Studio2013解决C语言竞赛题之0201温度转换

    题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float ...

  4. 基于visual Studio2013解决C语言竞赛题之0409 100以内素数

       题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...

  5. 基于visual Studio2013解决C语言竞赛题之0408素数

      题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么 ...

  6. 基于visual Studio2013解决C语言竞赛题之0407最大值最小值

      题目 解决代码及点评 这道题考察循环和比较 /*********************************************************************** ...

  7. 基于visual Studio2013解决C语言竞赛题之0406数列求和

      题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n- ...

  8. 基于visual Studio2013解决C语言竞赛题之0405阶乘求和

      题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更 ...

  9. 基于visual Studio2013解决C语言竞赛题之0404循环求和

      题目 解决代码及点评 这道题考验for循环和一个简单的算法 因为每次累加的值有规律,后面一次累加是前面一次累加的两倍 所以可以用简单的循环,计算累加项和累加结果 /************ ...

随机推荐

  1. Java class文件分析工具 -- Classpy

    Classpy Classpy是一个图形化的class文件分析工具,功能和javap类似,界面主要參考了Java Class Viewer: 为什么要又一次创造轮子? 写这个工具花了将近一周的时间.那 ...

  2. 倒计时IE10+

    直接上代码,dome 里边有我做的列表倒计时(多个同时倒计时)下面是我做的例子,颜色可以自己设置的 <p name="daojishi" style="width: ...

  3. java的数据类型,几个java小程序

    1:求圆的面积 还好看了c++,不然直接看这课件还真是看不懂……加油吧 要从键盘读入数据可以用Scanner类的nextlnt()或者nextDouble()方法,首先创建Scanner类的一个实例, ...

  4. Activity中Menu相关的几个方法的调用时机

    用于创建菜单的常用的方法有如下两种: 1.onCreateOptionsMenu(Menu menu) 2.onPrepareOptionsMenu(Menu menu) MyDiaryActivit ...

  5. ZOJ 2967 Colorful Rainbows 【Stack】

    解决此题方法类似于凸包,先把所有直线按照斜率a由小到大排序 斜率相同取b较大的,扔掉b小的 (可以在遍历的时候忽视).于是所有直线斜率不同. 准备一个栈 (手动模拟), 栈里面存放上一次能看到的“最上 ...

  6. ZOJ 3329 One Person Game 【概率DP,求期望】

    题意:有三个骰子,分别有k1,k2,k3个面. 每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和. 当分数大于n时结束.求游戏的期望步数.初始分数为0 设dp[i]表示达到 ...

  7. POJ 1142 质因数分解

    只要很朴素的分解就可以了,数据量不大 #include <stdio.h> #include <string.h> #include <stdlib.h> #inc ...

  8. ubuntu中出现警告:Gtk-WARNING**: 无法在模块路径中找到主题引擎:“pixmap”

    版本 ubuntu12.04 上一篇中提到使用中文输入法,但是我在使用的时候发现当我启动IBus的时候出现了警告,如图 这个如何是好呢? 最终万能的度娘告诉我这么解决 故障原因: gtk引擎出现了故障 ...

  9. WPF中StringFormat 格式化 的用法

    原文 WPF中StringFormat 格式化 的用法 网格用法 <my:DataGridTextColumn x:Name="PerformedDate" Header=& ...

  10. 基于visual Studio2013解决C语言竞赛题之0423比赛安排

       题目