一个农夫带着一只狼、一只羊和一棵白菜,身处河的南岸。他要把这些东西全部运到北岸。问题是他面前只有一条小船,船小到只能容下他和一件物品,另外只有农夫能撑船。另外,因为狼能吃羊,而羊爱吃白菜,所以农夫不能留下羊和白菜或者狼和羊单独在河的一边,自己离开。请问农夫该采取什么方案才能将所有的东西运过河呢...
农夫过河问题C代码判断是否为空队列函数intisemptyquepseqquepaqupaqufpaqurreturnelsereturn判断农夫位置intfarmerintlocation判断狼位置intwolfintlocation判断白菜位置intcabbageintlocation判断羊位置intgoatintlocation安全状态的判断函数intsafeintlocationgoatlocationcabbagelocationgoatlocation...
void p(int q) { if(q==0) printf("猎人 "); else if(q==1) printf("狼 "); else if(q==2) printf("羊 "); else if(q==3) printf("白菜 "); } int pd(int a[][4]) { int g=1; if(a[step][0]==a[step][2]||(a[step][1]!=a[step][2]&&a[step][2]!=a[step]...
要模拟农夫过河问题,需要对问题中每个角色的过河状态进行描述。一个方便的办法是用4位二进制数串顺序表示白菜,羊,狼和农夫的位置。用0表示农夫或者某东西在河的南岸,1表示在河的北岸。例如,0110表示农夫和白菜在河的南岸,而狼和羊在北岸。 问题从初始的状态0000(全部在河的南岸)出发,寻找一种全部由安全状态构成...
农夫过河问题(C++编写)
一个农夫在河边带了一只狼、一只羊和一颗白菜,他需要把这三样东西用船带到河的对岸。然而,这艘船只能容下农夫本人和另外一样东西。如果农夫不在场的话,狼会吃掉羊,羊也会吃掉白菜。请编程为农夫解决这个过河问题。 问题分析 根据问题描述可知,该问题涉及的对象较多,而且运算步骤也较为复杂,因此,在使用C语言实现...
C语言,农夫过河问题 一农夫带着一头狼,一只羊和一个白菜过河,小船只能一次装载农夫和一样货物,狼会吃羊,羊会吃白菜,只有农夫在时才安全。求程序解决,摆渡最少次数将所有货物安全运过去.拜托各位啊,加高分啊 解法如下: 1.农夫带羊过去,自己回来 2.农夫带狼过去,带
程序就是求解农夫过河问题:农夫带着一狼,一羊和一些菜过河。河边只有一船,一次农夫只能带一样东西。无人时,狼要吃羊,羊要吃菜,程序将找出所有农夫过河的方案。首先要表示狼,羊,菜和农夫所在的位置,4者的位置有本岸和对岸两种情况,分别用0和1表示,4者,所以用一个有4元素的数组。为了要...
农夫过河c语言详细 下载积分: 400 内容提示: 一、 问题需求分析 一个农夫带着一只狼、 一只羊和一棵白菜, 身处河的南岸。 他要把这些东西全部运到北岸。问题是他面前只有一条小船, 船小到只能容下他和一件物品, 另外只有农夫能撑船。 另外,因为狼能吃羊, 而羊爱吃白菜, 所以农夫不能留下羊和白菜或者狼...
=farmer(location))) return0;//狼吃羊 return1; } /*解决农夫问题函数*/ voidfarmerproblem(void) { inti,movers,location,newlocation; introute[16];//记录已走过的步骤 pseqquemoveto;//存放安全的步骤 moveto=createmptyqueue(16);//创建新队列 enque(moveto,0x00);//置状态初值 for(i=0;i<16...