农夫过河问题(c/c++),要求动态实现! 哪位大神帮帮忙啊

关键动态实现不会啊!求帮忙。。。。。。

#include "stdio.h"

void gh(int p[])
{
int i,j,n;
if(p[0]==1)//在对岸时 
{
if(p[1]==p[2] && p[1]==1)
{
if(p[2]==p[3])
return;
else
{
p[1]=0;
printf("农夫带狼返回\n"); 
}
}
else if(p[2]==p[3] && p[3]==1)
{
p[2]=0;
printf("农夫带羊返回\n"); 
}
else
printf("农夫返回\n");
p[0]=0;
gh(p);
}
else if(p[0]==0)//在原岸时 
{
if(p[1]==p[2] && p[1]==0)
{
if(p[2]==p[3])
{
p[2]=1;
printf("农夫带羊过河\n"); 
}
else
{
p[1]=1;
printf("农夫带狼过河\n"); 
}
}
else if(p[2]==p[3] && p[3]==0)
{
p[3]=1;
printf("农夫带狼过河\n"); 
}
else
{
if(p[3]==p[0])
{
p[3]=1;
printf("农夫带菜过河\n");
}
else if(p[2]==p[0])
{
p[2]=1;
printf("农夫带羊过河\n");
}
else if(p[1]==p[0])
{
p[1]=1;
printf("农夫带狼过河\n");
}
}
}
p[0]=(p[0]+1) % 2;
gh(p);
}
int main()
{
int p[4];  //p[0]:农夫;p[1]:狼;p[2]:羊;p[3]白菜.
int i;
for(i=0;i<4;i++) p[i]=0;//设初值0表示原来河岸 ,1表示对岸 
gh(p);
}

 

在河两岸采用分治方法,然后通过递归重新归化。

追问

能设计成动态的吗?就是屏幕上出现的农夫的活动过程 不是文字描述 谢谢啦!

追答

那用标C是没办法实现了,要用VC,你自己改一下吧.能像我这样做出来的人已经不多了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-05
说题目,谢谢。。。
是不是农夫带着狼、羊、白菜过河?
相似回答