當前位置:首頁 » 編程語言 » 換酒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斤瓶,完成。

熱點內容
php查看擴展 發布:2023-02-01 04:10:23 瀏覽:384
伺服器如何通過個人電腦上網 發布:2023-02-01 04:10:16 瀏覽:55
pythonbittorrent 發布:2023-02-01 04:09:29 瀏覽:641
加拿大訪問簽證材料 發布:2023-02-01 04:08:33 瀏覽:557
單病種上傳 發布:2023-02-01 04:00:55 瀏覽:349
微信撤回的消息沒有重新編譯 發布:2023-02-01 03:58:25 瀏覽:671
咖搭姆編程課 發布:2023-02-01 03:55:46 瀏覽:16
凝思系統開啟ftp功能 發布:2023-02-01 03:55:41 瀏覽:97
怎樣下載不讓緩存的歌曲 發布:2023-02-01 03:53:20 瀏覽:765
前端框架運行時與編譯時的區別 發布:2023-02-01 03:52:10 瀏覽:477