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







题目


解决代码及点评

 
 
 
 
/************************************************************************/
/* 
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






转载于:https://www.cnblogs.com/new0801/p/6177404.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值