c语言菜鸡,这道题我知道是.多实例.但我真的不会.多实例.,求大佬一个代码,谢谢,如图?

2025-01-21 06:24:38
推荐回答(2个)
回答1:

按照题目要求编写的计算换瓶数的C语言程序如下

#include

void cal_bottle(int m){

 int total=0;//total表示换瓶总数

 while(m>=3){

  total=total+m/3;

  m=m/3+m%3;

 }

 if(m==2) {total++;}

 printf("%d\n",total);

}

int main()

{

 int n;//n表示空瓶数

 scanf("%d",&n);

 while(n!=0){

  cal_bottle(n);

  scanf("%d",&n);

 } 

 return 0;

}

回答2:

#include

int Drinks(int n); // 函数声明

int main(void)
{
int n; // n 为输入值
FILE* fIn; // 文件指针

// 这里假定输入文件名为 input.txt
fIn = fopen("input.txt", "r");
if (fIn == NULL)
{
printf("打开输入文件错误.");
return -1;
}

// 从输入文件中逐行读取输入值、计算并输出结果
while (fscanf(fIn, "%d", &n) != EOF)
{
if (n == 0) // 输入值为0表示输入结束,退出while循环
break;
printf("%d\n", Drinks(n)); // 计算并输出结果
}
fclose(fIn);

return 0;
}

// 定义一个函数,输入空瓶数 n,返回喝过的瓶数 d
int Drinks(int n)
{
int d = 0;

// n 为剩余的空瓶,d 为累计喝过的瓶数
while (n >= 3) //当剩余空瓶数多于3个时,循环执行以下操作
{
d += n / 3; // n 整除 3 为当前可以喝到的瓶数,累加到 d 中
n = n / 3 + n % 3; // 更新兑换以后剩下的空瓶数
}

if (n == 2) // 按规则剩下 2 瓶 时可先借后还再多喝 1 瓶
d++;

return d; // 返回喝过的瓶数
}