1. #include<stdio.h>
2. int i;
/*最后需要分出的重量*/
3.
4. void getti(int a,int y,int z)
5. {
6.
int b=0,c=0;
/*b:第一个瓶的实际容量 c:第二瓶的实际容量*/
7.
printf("\n
a%d b%d c%d\n%4d%4d%4d\n",a,y,z,a,b,c);
8.
while(a!=i || b!=i && c!=i)
9.
{
/*当满瓶!=i或另两瓶都!=i时*/
10.
if(!b)
11.
{
/*如果第一瓶为空,则将满瓶倒入第一瓶中*/
12.
a-=y;
13.
b=y;
14.
}
15.
else if(c==z)
16.
{
17.
a+=z;
/*如果第二装满,则将第二瓶倒入满瓶中*/
18.
c=0;
19.
}
20.
else if(b>z-c)
/*如果第一瓶的实际容量>第二瓶的剩余空间*/
21.
{
/*则将装满第二瓶,第一瓶中保留剩余部分*/
22.
b-=(z-c);
23.
c=z;
24.
}
25.
else
/*否则,将第一瓶全部倒入第二瓶中*/
26.
{
27.
c+=b;
28.
b=0;
29.
}
30.
printf("%4d%4d%4d\n",a,b,c);
31.
}
32. }
33.
34. main()
35. {
36.
int a,y,z;
/*a:满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量*/
37.
printf("Input Full a,Empty b,c,Get i: ");
38.
scanf("%d %d %d %d",&a,&y,&z,&i);
39.
getti(a,y,z);
/*按a->y->z->a 操作步骤*/
40.
getti(a,z,y);
/*按a->z->y->a 操作步骤*/
41.
getch();
42. }
网上有现成的,,http://www.