1、 编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。(20分)
#include "stdio.h"
#include "conio.h"
int a,b,c;
//把x里的水移动到y中,y最多可以装ymax的水
void move(int *x,int *y,int ymax)
{
if(*x+*y >ymax)
{
*x=*x+*y-ymax;
*y=ymax;
}
else
{
*y=*x+*y;
*x=0;
}
printf("%d\t%d\t%d\n",a,b,c);
}
void main()
{
a=12;
b=c=0;
//先向B中注水
printf("a12\tb8\tc5\n");
while(a!=6&&b!=6)
{
if(c<5)
move(&a,&b,8);
else
move(&c,&a,12);
if(b!=6&&a!=6)
move(&b,&c,5);
}
if(b==6)
move(&c,&a,12);
else
move(&c,&b,8);
getch();
//先向c中注水
/*
while(a!=6&&b!=6)
{
if(b<8)
move(&a,&c,5);
else
move(&b,&a,12);
if(b!=6&&a!=6)
move(&c,&b,8);
}
if(b==6)
move(&c,&a,12);
else
move(&c,&b,8);
getch();
}
*/
}
本文介绍了一个使用C语言解决如何将12升水分成两个6升的问题。通过两个不同容量的容器进行倒水操作来实现目标分配。代码详细展示了从初始状态到最终状态的每一步操作。
188

被折叠的 条评论
为什么被折叠?



