c语言菜鸡,这道题我知道是.多实例.但我真的不会.多实例.,求大佬一个代码,谢谢,如图?
展开全部
#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; // 返回喝过的瓶数
}
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; // 返回喝过的瓶数
}
追问
大佬,为什么一运行就说“打开文件错误”,这个文件里的数据,不应该是运行时输入的吗,谢谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询