题目

解决代码及点评

/************************************************************************/

/*

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狼羊过河...相关推荐

  1. c语言编程人狼羊菜过河,基于visual Studio2013解决C语言竞赛题之1079狼羊过河

        题目 解决代码及点评 /************************************************************************/ /* ...

  2. 基于visual Studio2013解决C语言竞赛题之1089牛虎过河

        题目 解决代码及点评 /************************************************************************/ /* ...

  3. 基于visual Studio2013解决C语言竞赛题之1085相邻之和素数

        题目 解决代码及点评 /************************************************************************/ /* ...

  4. 基于visual Studio2013解决C语言竞赛题之1081shell排序

        题目 解决代码及点评 /************************************************************************/ /* ...

  5. 基于visual Studio2013解决C语言竞赛题之1027 YN

          题目 解决代码及点评 /*计算Yn的值,直到|Yn - Yn-1|<10-6为止,并打印出此时共作了多少次COS计算. 提示:Yn+1=COS(Yn),故本题 ...

  6. 基于visual Studio2013解决C语言竞赛题之1070删除相同节点

        题目 解决代码及点评 /************************************************************************/ /* ...

  7. 基于visual Studio2013解决C语言竞赛题之0502最小数替换

         题目 解决代码及点评 /************************************************************************/ ...

  8. 基于visual Studio2013解决C语言竞赛题之1091多项式

        题目 解决代码及点评 /************************************************************************/ /* ...

  9. 判断同构数 c语言,基于visual Studio2013解决C语言竞赛题之0413同构数

    JQuery的基础和应用 1.什么是?    DOM的作用:提供了一种动态的操作HTML元素的方法.    jQuery是一个优秀的js库.用来操作HTML元素的工具.    jQuery和DOM . ...

最新文章

  1. python直接执行*.sql_Python Django 之 直接执行自定义SQL语句(一)
  2. thinkphp路由配置 php7.0,thinkphp3.2 路由设置方法
  3. 个人永久性免费-Excel催化剂功能第28波-工作薄瘦身,安全地减少非必要冗余
  4. c和c++的结构体使用
  5. mysql select null 0,查询值中为NULL,在MySQL中产生0.00
  6. C#之out和ref区别
  7. c# 批量mqtt_C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)
  8. python建立文件数据库_python学习-- Django根据现有数据库,自动生成models模型文件...
  9. 服务器物理机怎么开,物理机怎么弄云服务器
  10. y查询硬盘内存CPU
  11. 怎么在Android布局里面写下拉框,Android CoordinatorLayout(六) 加入下拉功能
  12. xampp的安装和配置
  13. A Simple but Tough-to-Beat Baseline for Sentence Embeddings阅读笔记
  14. 设计模式小例子理解封装、继承、多态
  15. 叉姐训练目录,好好搞搞,两个月要搞定哦
  16. html5中插入样式表方法,如何插入css样式?
  17. 互联网巨头入局汽车后市场,VIN码识别迎利好
  18. centos7 挂载 硬盘 shell 懒人系列-2
  19. 10分钟白嫖大厂程序员都在用的在线工具网站
  20. SPSS 22.0下载、授权及汉化

热门文章

  1. 开源机器学习工具SQLFlow
  2. nativefier - 把网页生成桌面应用程序
  3. 2014年国内最热门的.NET开源项目TOP25
  4. 免费学习编程-值得收藏
  5. python中narc是什么意思_python中@是什么意思
  6. linux设置为lunux文件夹,Linux设置环境变量时如何修改文件
  7. ajax 返回数组某个属性值,jQuery Ajax向某个页面传值并取得返回的数组
  8. linux下 环境搭建教程,Linux环境下搭建pNFS使用环境教程
  9. sql lab 爆库 心得
  10. 究竟是什么?让程序员们怒了