【发布时间】:2020-11-09 15:21:49
【问题描述】:
我正在解决一个问题,如果某人有 k 个零食,他/她可以通过交换零食包获得一份奖励零食。
例如,如果我一开始有 8 个零食,如果我交换 3 个零食包,我会得到一个额外零食,我最终会得到 11 个零食,因为我从现有的 8 个零食中得到了两个,从四个点心离开了。我做了一个应该是正确的程序,我手动尝试了这个程序。
#include <stdio.h>
int main()
{
int t, n1, input, k, bonus = 0, total=0, bis =0;
scanf("%d", &t);
while(t--){
scanf("%d", &input);
scanf("%d", &k);
n1 = input;
while(input>=k){
bonus = bonus + input/k;
input = bonus + (input-(k*(input/k)));
}
total = n1 + bonus;
printf("%d\n", total);
}
return 0;
}
t 用于测试用例,input 用于某人首先吃的零食数量。
我已尝试搜索问题,似乎当我在其中分配另一个输入时,while 循环中变量input 的值将导致input 变量返回大随机数或与记忆。
我在这里做的真正错误是什么?以及如何解决?
- t -- 重复测试的类型数
- 输入 -- 最初拥有的零食数量
- k -- 获得奖金所需的零食数量
【问题讨论】:
-
你能发布你的作业文本而不是解释它吗?你的解释不清楚
-
对不起,让我解释清楚
-
我不明白“……还有剩下的四种零食中的一种。”
-
k 是我的例子,3。所以如果我一开始有 8 个零食,我可以用 6 个零食包换取 2 个奖励零食,这样我就剩下 4 个零食了(因为我吃了 6换包,所以我还剩两个,加了两个),我可以把3个零食包换成另一个零食,这样我一共8+2+1个零食
-
第一次测试你得到正确的输出了吗?测试的错误输出是什么,该测试的输入是什么?
标签: c loops while-loop updating