您的位置:

c语言瓶盖问题,c语言瓶子换啤酒

本文目录一览:

一瓶酒2元,4个瓶盖换一瓶酒,2个酒瓶换一瓶酒,那么10元能买几瓶酒c 语言编程

不说了,直接上代码:

#includestdio.h

int cap;

int bottle;

int wines;

int money_to_wine(int money){

cap += money/2;

bottle += money/2;

return money/2;

}

void cap_to_wine(void){

int can_buy_wine = cap/4;

wines += can_buy_wine;

bottle += can_buy_wine;

cap -= can_buy_wine * 4;

cap += can_buy_wine;

}

void bottle_to_wine(void){

int can_buy_wine = bottle/2;

wines += can_buy_wine;

cap += can_buy_wine;

bottle -= can_buy_wine * 2;

bottle += can_buy_wine;

}

int main(void){

int money = 10;

wines = money_to_wine(money);

while(cap = 4 || bottle = 2){

if(cap = 4)

cap_to_wine();

if(bottle = 2)

bottle_to_wine();

}

printf("money %d can buy total %d wines.\n", money, wines);

return 0;

}

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

// 代码有不懂的问我

#includeiostream

using namespace std;

void drinkBeer(int money, int bottleNum, int capNum, int beerNum) {

    if (money  2  bottleNum  2  capNum  4) {

        return;

    }

    // 拿钱换酒

    if (money  2) {

        int drinkNum = money / 2;

        beerNum += drinkNum;

        bottleNum += drinkNum;

        capNum += drinkNum;

        money -= drinkNum * 2;  // 剩余的钱

        drinkBeer(money, bottleNum, capNum, beerNum);

    }

    // 拿瓶子换酒

    if (bottleNum  2) {

        int drinkNum = bottleNum / 2;

        bottleNum -= drinkNum * 2;  // 喝完后多余没喝的瓶子数

        beerNum += drinkNum;

        bottleNum += drinkNum;

        capNum += drinkNum;

        drinkBeer(money, bottleNum, capNum, beerNum);

    }

    // 拿瓶盖换酒

    if (capNum  4) {

        int drinkNum = capNum / 4;

        capNum -= drinkNum * 4;

        beerNum += drinkNum;

        bottleNum += drinkNum;

        drinkBeer(money, bottleNum, capNum, beerNum);

    }

}

int main() {

    int money = 10;

    int bottleNum = 0;

    int capNum = 0;

    int beerNum = 0;

    

    drinkBeer(money, bottleNum, capNum, beerNum);

    printf("总共喝了%d瓶\n", beerNum);

    system("pause");

    return 0;

}

用c语言解答

#includestdio.h

int get_number(int money);

int main(){

int money;

printf("Please input money:\n");

scanf("%d", money);

printf("You can drink %d bottles of beer.\n", get_number(money));

return 0;

}

int get_number(int money){

int cap, bottle;

int number;

number = cap = bottle = money / 2;

while (cap = 4 || bottle = 2){

int tmp_cap = cap / 4;

int tmp_bottle = bottle / 2;

cap = cap - tmp_cap*4 + tmp_cap + tmp_bottle;

bottle = bottle - tmp_bottle * 2 + tmp_cap + tmp_bottle;

number = number + tmp_cap + tmp_bottle;

}

return number;

}

啤酒2元钱1瓶!4个瓶盖换1瓶!2个空瓶换1瓶!问:10元钱可以喝几瓶?

10元可以15瓶啤酒。

计算步骤如下:

先拿10元全部买啤酒5瓶,喝完之后会有5个瓶盖和5个空瓶;

之后我们拿4个瓶盖去换1瓶啤酒,4个空瓶换2瓶啤酒,全部喝完之后再次剩4个瓶盖和4个空瓶;

再拿4个瓶盖换1瓶啤酒,4个空瓶换2瓶啤酒,喝完之后我们得到3个瓶盖和3个空瓶;

再用这2个空瓶换1瓶啤酒,喝完之后我们得到4个瓶盖,2个空瓶;

再次用4个瓶盖换1瓶啤酒,两个空瓶换1瓶啤酒,喝完后剩下2个空瓶和2个瓶盖;

最后拿2个空瓶换1瓶啤酒,喝完后我们得到3个瓶盖和1个空瓶。

到了这一步就无法再进行兑换,综合全面喝过的啤酒,一共是十五瓶。

拓展资料:

“空瓶换酒”问题是数学运算中的一类趣味问题,来源于商家为了充分回收啤酒瓶的一种促销活动,频繁地出现在考试中。

这类问题整体难度不大,是考生易得分的一种题型。

这类问题在题干中往往会有一句话说m个空瓶换n瓶水,我们一般转化成多少个空瓶换1个水来操作会方便解题。比如4个空瓶换2瓶水,则有2空瓶=1瓶+1水(不含瓶的水)。

【例】一块钢锭可以铸成25个机器零件的毛坯,每加工5个机器零件的毛坯所剩的脚料又可以铸成一个机器零件的毛坯。现在有这种钢锭10块,最多可以加工多少个机器零件毛坯?

A.311 B.312 C.313 D.314

每5个毛坯脚料可以换一个毛坯,相当于每5个空瓶可以换1瓶水,则有:

5脚料=1毛坯+1脚料,则1脚料=1/4毛坯,一块做25个毛坯,10块做250个毛坯。产生250块毛坯脚料,这些脚料可以做成250×1/4=62.5个毛坯。共有零件毛坯250+62.5=312.5个,取整为312个,选B。

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

#include"stdio.h"

/*啤酒2块钱一瓶,4个瓶盖可以换一瓶,2个瓶子可以

换一瓶啤酒,x块钱可以喝几瓶啤酒?*/

void main()

{

int money,beer,bottle,cap,sum;

scanf("%d",money);

bottle=cap=sum=money/2;

while(!(cap4  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 瓶\n",sum);

}

两元一瓶啤酒,四个瓶盖换一瓶,两个空瓶换一瓶,问十块钱能喝几瓶

10块钱可以喝酒20瓶,有2种方法计算:

第一种:2元1瓶瓶酒,4个瓶盖换1瓶,2个瓶子换一瓶,算下来:1个瓶盖0.5元,1个瓶子1元,1瓶啤酒净水=2-0.5-1=0.5元,这样10/0.5=20瓶啤酒

第二种:10元买5瓶啤酒,然后借15瓶酒,这样一共喝20瓶啤酒。喝完后20个空瓶换10瓶啤酒,20个瓶盖换5瓶啤酒,一共换15瓶啤酒还掉。

OK,共喝酒瓶数=5+15=20瓶酒。