帮帮我~!~!~!~! |
帮帮我~!~!~!~!
我有个同学叫我用C语言编个程序,可我想了好长时间也没想出来,所以请各位高手帮帮我,题目是:一个人带只一只羊,一只狼,和一个白菜,过独木桥,过的时候一次只能运一个!还有狼吃羊,羊吃白菜,不能让它们互相吃!
答案是:先把羊运到对岸,在回来运白菜,在把羊从对岸运回来,在把狼运到对岸,在回来运羊,这样谁也不吃谁了~!
我同学的意思是编个C程序,把结果输出来!
谢谢各位了!帮帮我吧~!
只要能输出如下就可以了:
A是羊,B是白菜,C是狼
A-->A
B-->B
A-->A
C-->C
A-->A
|
|
|
|
回帖 |
 |
|
回复人: |
亓官 |
Re: |
回复时间: |
2003.05.11 19:39 |
|
设桥左三个数为A、B、C,D,初值1,这时三个数分别为羊、菜、狼,人。
设桥右三个数为E、F、G、H,初值0,表示什么也没有。
条件:如A为1,B不能为1。
如C为1,A不能为1。
但如D为1,则A、B、C可以为1。
E、F、G、H同理。
依次往EFGH中赋值,进行判断即可。
最后结果打印出来,EFGH每一次判断后的值,就是你的答案了。
思路大约是这样,细节你自己处理吧。
想了一下,可能我这种方法麻烦些,因为太久没用程序了,设函数可能会简单些。
|
|
回复人: |
亓官 |
Re: |
回复时间: |
2003.05.15 20:10 |
|
另加条件:A+E为1,B+F为1,CG、DH同理。
|
|
回复人: |
朱野 |
Re: |
回复时间: |
2003.06.13 21:26 |
|
main()
{int a=1,b=1,c=1;
int n;
printf("a是羊,b是白菜,c是狼");
n=0;a=n;
printf("a-->a"n);
if(b=1&&c=1)
{n=0;b=0;a=1;
printf("b-->b"n);
printf("a-->a"n);}
if(a=1&&c=1)
{n=0;c=n;a=0;
printf("c-->c"n);
printf("a-->a"n);}}
|
|
回复 |
 |
|
|
|