c語言裝酒
⑴ 問題是:有一隻裝滿8斤酒的瓶子和兩只分別裝5斤和3斤酒的空瓶,如何才能將這8斤酒分成兩等份.求c語言編程
先把5斤瓶倒滿酒,再用5斤瓶的酒把3斤的酒瓶倒滿,3斤瓶的酒倒回8斤瓶,5斤瓶里剩下2斤酒倒進3斤瓶,用8斤瓶的酒將5斤瓶倒滿,再用5斤瓶的酒把3斤的瓶倒滿,5斤瓶剩餘4斤酒,3斤瓶的酒倒進8斤瓶,完成。
⑵ 啤酒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;
}
⑶ 老師布置的分酒問題,求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);
}
}
⑷ 用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;
}