一个有趣的问题的C语言编程

来源:本站
导读:目前正在解读《一个有趣的问题的C语言编程》的相关信息,《一个有趣的问题的C语言编程》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《一个有趣的问题的C语言编程》的详细说明。
简介:问题:有两个没有刻度的8两的酒瓶和一个可以没有刻度的3两的酒杯,现在有16两酒要平均分给4个人喝,怎么分配?

这个问题网上有很多人讨论过,我看过一篇文章写出了比较具体的C程序,但十分繁复。我对这个问题做了简单的思考写出了一个简单的程序,这个程序只能产生分配方法中的几种解法,但非常轻易理解。

源程序如下:

#include"stdio.h"

int a,b,c,d,x,y,v,j;

void show()

{

printf("甲 %d,乙 %d,丙 %d,丁 %d,瓶一 %d,瓶二 %d,酒杯 %d→第%d步。n",a,b,c,d,x,y,v,j);

j++;

}

void make()

{

v=0;

x=3;

show();

v=3;

y=y-3;

show();

v=0;

x=6;

show();

y=y-3;

v=3;

show();

x=8;

v=1;

show();

}

void assign()

{

x=x-3;

v=v+3;

show();

a=a+3;

v=v-3;

show();

x=x-3;

v=v+3;

show();

d=x;

x=0;

show();

}

void main()

{

int i;

j=1;

a=b=c=d=v=i=0;

x=y=8;

show();

assign();

while(x=0,x+y+v>8)

{

make();

i=i+1;

v=0;

if(i=1)

{

a=4;

}

if(i=2)

{

b=1;

}

if(i=3)

{

c=1;

}

show();

v=3;

y=y+(x-3);

x=0;

show();

if(x+y+v<=8)

break;

}

b=b+v;

v=0;

show();

y=y-3;

v=v+3;

show();

c=c+v;

v=0;

show();

d=d+y;

y=0;

show();

}

由于VC++6.0在编写源程序时十分方便,所以我即使写C程序也习惯使用VC++6.0,这个程序是在VC++6.0上运行通过。

这个简单的算法是循环产生1两酒,因为只要产生1两的情况,那些就十分轻易分配了。

谁有更简单又能产生更多分配情况的好程序请贴出来,让大家分享一下!谢谢。

提醒:《一个有趣的问题的C语言编程》最后刷新时间 2024-03-14 01:01:09,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《一个有趣的问题的C语言编程》该内容的真实性请自行鉴别。