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

 我来答
紫薇参星
科技发烧友

2020-10-07 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3569万
展开全部

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

#include<stdio.h>

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;

}

百度网友c1994c5f8
2020-10-07 · TA获得超过1332个赞
知道小有建树答主
回答量:264
采纳率:89%
帮助的人:201万
展开全部
#include <stdio.h>

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; // 返回喝过的瓶数
}
追问
大佬,为什么一运行就说“打开文件错误”,这个文件里的数据,不应该是运行时输入的吗,谢谢
追答

题目要求是从文件输入,但是没有定义输入文件的文件名,所以我假定文件名为input.txt。

你需要在 【源代码文件 或者 可执行文件】 的同一个文件夹中,手动新建一个名 input.txt 的文本文件,然后在里面输入:

3

10

81

0

这样的几行数据,再运行程序就可以看到结果了。你也可以随便输入更多行数字来验证。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式