用C语言解决狼羊白菜过河的思路,基于visual Studio2013解决C语言竞赛题之1079狼羊过河...
题目
解决代码及点评
/************************************************************************/
/*
79.猎人过河。
猎人要把一只狼,一头羊和一些白菜从河的左岸带到右岸,但他的船太小,
一次只能带一样,因为狼要吃羊,羊会吃白菜,所以狼和羊,羊和白菜不能在无人监视的情况下相处
,问猎人怎样才能达到目的? 请编程序实现猎人过河。
*/
/************************************************************************/
#include
#include
static int num=0;
bool IsSafe(int *arr)
{
if (arr[0]==1&&arr[1]==1||arr[1]==1&&arr[2]==1)
{
return false;
}
else
return true;
}
void printfarr79(int *arr)
{
for (int i=0;i<3;i++)
{
printf("%5d",arr[i]);
}
}
bool flag=0;//定义结束标志
voidMove(int *farr,int*tarr,int h,int zs)//h表示方向 1表示A-B 0 表示B-A zs 表示这次送过去的标号
{
if (h&&tarr[3]==3||!h&&farr[3]==3)
{
printf("结束了");
flag=1;
return;
}
else if(flag==0)
{
for (int i=0;i<3;i++)
{if (flag==1)
break;
if (i==zs)
continue;
if (farr[i]==0)
{
continue;
}
farr[i]=0;
farr[3]--;
tarr[i]=1;
tarr[3]++;
printf("移动%d\n",i);
if (IsSafe(farr))
{
if (IsSafe(tarr)&&h&&(!flag))
{
Move(farr,tarr,h,i);
}
else if(!flag)
{
Move(tarr,farr,!h,i);
}
}
else if (flag==0)
{
farr[i]=1;
farr[3]++;
tarr[i]=0;
tarr[3]--;
printf("不符合条件回退%d\n",i);
}
}
}
}
void main()
{printf("0代表菜 1代表羊 2 代表狼");
int arr1[4]={1,1,1,3};
int arr2[4]={0};
Move(arr1,arr2,1,-1);
printf("asdasfdsf");
system("pause");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
密码:c.itcast.com
用C语言解决狼羊白菜过河的思路,基于visual Studio2013解决C语言竞赛题之1079狼羊过河...相关推荐
- c语言编程人狼羊菜过河,基于visual Studio2013解决C语言竞赛题之1079狼羊过河
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之1089牛虎过河
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之1085相邻之和素数
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之1081shell排序
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之1027 YN
题目 解决代码及点评 /*计算Yn的值,直到|Yn - Yn-1|<10-6为止,并打印出此时共作了多少次COS计算. 提示:Yn+1=COS(Yn),故本题 ...
- 基于visual Studio2013解决C语言竞赛题之1070删除相同节点
题目 解决代码及点评 /************************************************************************/ /* ...
- 基于visual Studio2013解决C语言竞赛题之0502最小数替换
题目 解决代码及点评 /************************************************************************/ ...
- 基于visual Studio2013解决C语言竞赛题之1091多项式
题目 解决代码及点评 /************************************************************************/ /* ...
- 判断同构数 c语言,基于visual Studio2013解决C语言竞赛题之0413同构数
JQuery的基础和应用 1.什么是? DOM的作用:提供了一种动态的操作HTML元素的方法. jQuery是一个优秀的js库.用来操作HTML元素的工具. jQuery和DOM . ...
最新文章
- python直接执行*.sql_Python Django 之 直接执行自定义SQL语句(一)
- thinkphp路由配置 php7.0,thinkphp3.2 路由设置方法
- 个人永久性免费-Excel催化剂功能第28波-工作薄瘦身,安全地减少非必要冗余
- c和c++的结构体使用
- mysql select null 0,查询值中为NULL,在MySQL中产生0.00
- C#之out和ref区别
- c# 批量mqtt_C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)
- python建立文件数据库_python学习-- Django根据现有数据库,自动生成models模型文件...
- 服务器物理机怎么开,物理机怎么弄云服务器
- y查询硬盘内存CPU
- 怎么在Android布局里面写下拉框,Android CoordinatorLayout(六) 加入下拉功能
- xampp的安装和配置
- A Simple but Tough-to-Beat Baseline for Sentence Embeddings阅读笔记
- 设计模式小例子理解封装、继承、多态
- 叉姐训练目录,好好搞搞,两个月要搞定哦
- html5中插入样式表方法,如何插入css样式?
- 互联网巨头入局汽车后市场,VIN码识别迎利好
- centos7 挂载 硬盘 shell 懒人系列-2
- 10分钟白嫖大厂程序员都在用的在线工具网站
- SPSS 22.0下载、授权及汉化