当前位置:首页 » 编程语言 » 换酒c语言

换酒c语言

发布时间: 2022-11-30 05:58:05

㈠ 你有300瓶啤酒 , 喝完三个空瓶可以换一瓶新啤酒, 写一段程序 计算 你一共能喝多少瓶啤酒

void main()
{
int n1=0,n2=0,n=300;
int sum=0;
sum=sum+n;
while (n>=3)
{
n1=n/3;//可以换回多少瓶
n2=n%3;//余下不够换一瓶的
n=n1+n2;//还可以换酒的瓶数
sum=sum+n1;//加上换回来的瓶数
}
printf("%d\n",sum);

}

㈡ 下面这道题请用c语言写出程序 啤酒2元1瓶,2个空瓶换1瓶,4个瓶盖换1瓶,问10元钱最多可以喝几瓶 多谢

#include <stdio.h>

int main()

{ int jiu=0,ping=0,gai=0,qian,t;

scanf("%d",&qian);

while(qian>1||ping>1||gai>3)

{ if(qian>1)

{ t=qian/2;

qian%=2;

jiu+=t;

ping+=t;

gai+=t;

}

if(ping>1)

{ t=ping/2;

ping%=2;

jiu+=t;

ping+=t;

gai+=t;

}

if(gai>3)

{ t=gai/4;

gai%=4;

jiu+=t;

ping+=t;

gai+=t;

}

}

printf("能喝%d瓶酒 ",jiu);

if(ping+gai)printf("还剩");

{ if(ping)printf("%d个瓶",ping);

if(ping&&gai)printf("和");

if(gai)printf("%d个盖",gai);

}

return 0;

}

㈢ c语言程序设计:分酒问题某人有12品脱的酒一瓶,想从中倒出6品脱.....

给,
详细的算法分析,以及源代码和注释:

问题分析与算法设计
将12品脱酒 8品脱和5品脱的空瓶平分,可以抽象为解不定方程:
8x-5y=6
其意义是:从12品脱的瓶中向8品脱的瓶中倒x次,并且将5品脱瓶中的酒向12品脱的瓶中倒y次,最后在12品脱的瓶

中剩余6品脱的酒。
用a,b,c代表12品脱、8品脱和5品脱的瓶子,求出不定方程的整数解,按照不定方程的意义则倒法为:
a -> b -> c ->a
x y
倒酒的规则如下:
1) 按a -> b -> c ->a的顺序;
2) b倒空后才能从a中取
3) c装满后才能向a中倒
按以上规则可以编写出程序如下:
*程序与程序注释
#include<stdio.h>
void getti(int a,int y,int z);
int i; /*最后需要分出的重量*/
void main()
{
int a,y,z;
printf("input Full a,Empty b,c,Get i:"); /*a 满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量*/
scanf("%d,%d,%d,%d",&a,&y,&z,&i);
getti(a,y,z); /*按a -> y -> z -> a的操作步骤*/
getti(a,z,y); /*按a -> z -> y -> a的步骤*/
}
void getti(int a,int y,int z) /*a:满瓶的容量 y:第一个空瓶的容量 z:第二个空瓶的容量*/
{
int b=0,c=0; /* b:第一瓶实际的重量 c:第二瓶实际的重量*/
printf(" a%d b%d c%d\n %4d%4d%4d\n",a,y,z,a,b,c);
while(a!=i||b!=i&&c!=i) /*当满瓶!=i或另两瓶都!=i*/
{
if(!b)
{ a-=y; b=y;} /*如果第一瓶为空,则将满瓶倒入第一瓶中*/
else if(c==z)
{ a+=z; c=0;} /*如果第二瓶满,则将第二瓶倒入满瓶中*/
else if(b>z-c) /*如果第一瓶的重量>第二瓶的剩余空间*/
{ b-=(z-c);c=z;} /*则将装满第二瓶,第一瓶中保留剩余部分*/
else{ c+=b; b=0;} /*否则,将第一瓶全部倒入第二瓶中*/
printf(" %4d %4d %4d\n",a,b,c);
}
}

㈣ 啤酒2块1瓶,4个盖换1瓶,2个空瓶换1瓶,10块可以喝几瓶 .用C语言编程解决,在线等,急啊!

//代码有不懂的问我
#include<iostream>
usingnamespacestd;

voiddrinkBeer(int&money,int&bottleNum,int&capNum,int&beerNum){
if(money<2&&bottleNum<2&&capNum<4){
return;
}

//拿钱换酒
if(money>2){
intdrinkNum=money/2;
beerNum+=drinkNum;
bottleNum+=drinkNum;
capNum+=drinkNum;

money-=drinkNum*2;//剩余的钱
drinkBeer(money,bottleNum,capNum,beerNum);
}

//拿瓶子换酒
if(bottleNum>2){
intdrinkNum=bottleNum/2;
bottleNum-=drinkNum*2;//喝完后多余没喝的瓶子数
beerNum+=drinkNum;
bottleNum+=drinkNum;
capNum+=drinkNum;

drinkBeer(money,bottleNum,capNum,beerNum);
}

//拿瓶盖换酒
if(capNum>4){
intdrinkNum=capNum/4;
capNum-=drinkNum*4;
beerNum+=drinkNum;
bottleNum+=drinkNum;

drinkBeer(money,bottleNum,capNum,beerNum);
}

}

intmain(){
intmoney=10;
intbottleNum=0;
intcapNum=0;
intbeerNum=0;

drinkBeer(money,bottleNum,capNum,beerNum);

printf("总共喝了%d瓶 ",beerNum);
system("pause");
return0;
}

㈤ 啤酒2块钱一瓶,4个瓶盖可以换一瓶,2个瓶子可以 换一瓶啤酒,x块钱可以喝几瓶啤酒我用C语言编的,但有错

#include"stdio.h"
/*啤酒2块钱一瓶,4个瓶盖可以换一瓶,2个瓶子可以
换一瓶啤酒,x块钱可以喝几瓶啤酒?*/
voidmain()
{
intmoney,beer,bottle,cap,sum;
scanf("%d",&money);
bottle=cap=sum=money/2;
while(!(cap<4&&bottle<2))//当瓶盖数小于4并且瓶子数小于2时,就不能换啤酒了哇
{
sum+=bottle/2;//瓶子换啤酒
sum+=cap/4;//瓶盖换啤酒
//瓶盖兑换成啤酒之后的瓶盖数和瓶子数
bottle+=cap/4;//4个瓶盖换一瓶啤酒,那么瓶子数增加的数量
cap=cap/4+cap%4;
//瓶子兑换成啤酒之后的瓶盖数和瓶子数
cap+=bottle/2;//2个瓶子换啤酒后增加的瓶盖数
bottle=bottle/2+bottle%2;
}
printf("能喝的啤酒数量=%d瓶 ",sum);
}

㈥ 老师布置的分酒问题,求C语言或MATLAB程序,跪求大佬解答

#include<stdio.h>
inti;
voidgetti(inta,inty,intz);

intmain()
{
inta,y,z;
printf("inputfulla,emptyb,c,geti:");
scanf("%d%d%d%d",&a,&y,&z,&i);
getti(a,y,z);
getti(a,y,z);
return0;
}
voidgetti(inta,inty,intz)
{
intb=0,c=0;
printf("a%db%dc%d %4d%4d%4d ",a,y,z,a,b,c);
while(a!=i||(b!=i&&c!=i)){
if(!b)
{a-=y;b=y;}
elseif(c==z)
{a+=z;c=0;}
elseif(b>z-c)
{
b-=(z-c);c=z;
}
else{c+=b;b=0;}
printf("%4d%4d%4d ",a,b,c);
}
}

㈦ 你有300瓶啤酒 , 喝完三个空瓶可以换一瓶新啤酒, 写一段程序 计算 你一共能喝多少瓶啤酒

一共可以喝449瓶,还剩下一个空瓶子。
300瓶啤酒,300空瓶,换100啤酒。100空瓶,换33啤酒,剩下一个空瓶子。33空瓶,换11啤酒,刚才剩下的那个空瓶子依然剩下。11个空瓶加刚才剩下的那个空瓶子,是12个空瓶,换4瓶啤酒,4个空瓶只能换一瓶啤酒,最终剩下1个空瓶。
啤酒总数:
300+100+33+11+4+1=449

㈧ 用c语言写啤酒和饮料

/*啤酒2块1瓶4盖换1瓶2空瓶换1瓶10块喝几瓶? .用C语言编程解决*/

#include
#define PRICE 2//单价
#define COV 4//每4盖换瓶
#define ENP 2//每2瓶换瓶

int main(int argc, char* argv[])
{
int enpty = 0;//空瓶
int cover = 0;//盖
int money = 10;//钱
int beer = 0;// 啤酒

while(enpty>0||cover>0||money>0)
{
for(; money>0; money-=PRICE)
{
enpty++;
cover++;
beer++;
}
for(;enpty>0; enpty-=ENP)
{
enpty++;
cover++;
beer++;
}
for(; cover>0; cover-=COV)
{
enpty++;
cover++;
beer++;
}
}
printf("10块洋喝%d瓶啤酒、\n", beer);
return 0;
}

㈨ 问题是:有一只装满8斤酒的瓶子和两只分别装5斤和3斤酒的空瓶,如何才能将这8斤酒分成两等份.求C语言编程

先把5斤瓶倒满酒,再用5斤瓶的酒把3斤的酒瓶倒满,3斤瓶的酒倒回8斤瓶,5斤瓶里剩下2斤酒倒进3斤瓶,用8斤瓶的酒将5斤瓶倒满,再用5斤瓶的酒把3斤的瓶倒满,5斤瓶剩余4斤酒,3斤瓶的酒倒进8斤瓶,完成。

热点内容
全排列的递归算法 发布:2024-05-03 05:42:28 浏览:901
肥胖的算法 发布:2024-05-03 05:38:09 浏览:783
两个数据库事务 发布:2024-05-03 05:33:41 浏览:855
phpjson转 发布:2024-05-03 05:33:40 浏览:659
设计一个虚拟存储区 发布:2024-05-03 05:24:18 浏览:927
压缩机如何配置电容 发布:2024-05-03 05:20:55 浏览:109
pythonconvert函数 发布:2024-05-03 05:19:54 浏览:526
androidspinner下拉 发布:2024-05-03 05:14:05 浏览:589
go源码编译2021 发布:2024-05-03 05:02:27 浏览:285
两驱车买哪个配置最好 发布:2024-05-03 04:41:42 浏览:803