【发布时间】:2019-07-03 10:39:52
【问题描述】:
我得到了一些从文件中读取的变量值,然后我执行了运行总计计算。我的目标是找出我完成了多少总计算。我可以通过在最后从我的计数器中减去 1 来得到正确的数字,但我不想通过改变我的条件来更好地适应它。我意识到我没有在我的情况下使用计数器,这是个问题吗?
输入示例:a=10, b=5, t=70
任何帮助将不胜感激。尝试将条件更改为 sum
//Reads and calculates a, b and t, and outputs number of dishes to output.txt
while (inFile >> a)
{
inFile >> b >> t;
for (counter = 0; sum <= t ; counter++)
{
sum += a + (counter * b);
}
outFile << " " << a << "\t\t" << b << "\t\t" << t << "\t\t" << counter -1 << endl; //Output iteration results
//Reset total before next iteration
sum = 0;
}
【问题讨论】:
-
如果你的计数器是 t 为什么你用 sum 而不是 counter 比较
-
确定
for (counter = 0; counter < t ; counter++)?但也许不是,你没有很好地解释你想要做什么。 -
T 实际上是另一个变量,我必须将我的总和与之进行比较,以确保我不会超过它的值。在这种情况下,while 循环会更好吗?
-
@Cornel 那是你的问题。您应该之前测试
sum超过t而不是之后。因为您在之后进行测试,所以您进行了太多计算,您的最终值sum将太大。for (counter = 0; sum + a + (counter * b) <= t ; counter++)。你可以简化一下。
标签: c++ loops for-loop off-by-one