基于visual Studio2013解决C语言竞赛题之1082迷宫_#include


题目

基于visual Studio2013解决C语言竞赛题之1082迷宫_#include_02


解决代码及点评

/************************************************************************/
/*
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)新建工程

基于visual Studio2013解决C语言竞赛题之1082迷宫_上传_03

2)选择工程

基于visual Studio2013解决C语言竞赛题之1082迷宫_#include_04

3)创建完工程如下图:

基于visual Studio2013解决C语言竞赛题之1082迷宫_#include_05

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

基于visual Studio2013解决C语言竞赛题之1082迷宫_#include_06

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

基于visual Studio2013解决C语言竞赛题之1082迷宫_上传_07

6)添加文件

基于visual Studio2013解决C语言竞赛题之1082迷宫_#pragma_08

7)拷贝代码与运行

基于visual Studio2013解决C语言竞赛题之1082迷宫_#include_09


程序运行结果

基于visual Studio2013解决C语言竞赛题之1082迷宫_上传_10


代码下载

解压密码:c.itcast.cn