【发布时间】:2020-09-05 00:58:43
【问题描述】:
我有一个关于将计数器重置为 0 的问题。下面是我的函数
std::string passorFail(double performanceScore, int threshHold)
{
if (performanceScore > threshHold)
{
pass++; //if the judge socres a pass, 1 is added to the counter
return "pass";
}
else
{
return "fail";
}
}
一个名为 '''int pass = 0;''' 的 int 变量在作用域中全局声明,因为它是另一个函数所需要的。它的调用方式与此类似(PS 它必须是全局的)
somefunction(pass);
现在这就是计数器的行为方式。函数 passorFail 在遍历一个向量时总共被调用了 4 次,并且每次遍历它都会增加它应该的值。所以输出是这样的。
count after first pass: 3
count after first pass: 5//increases by 2
count after first pass: 8//increases by 3
count after first pass: 12//increases by 4
我想要做的是显示每次迭代中计数增加了多少,所以更像这样而不是上面显示的内容。
count of first pass: 3
count of first pass: 2
count of first pass: 3
count of first pass: 4
在 if 语句中返回“pass”后,我尝试将 pass 设置为 0,如下面的代码,但是它仍然显示通过的总数,而不是每次迭代中增加了多少。
if (performanceScore > threshHold)
{
pass++;
return "pass";
}
任何帮助将不胜感激:)谢谢
【问题讨论】:
-
如果这个问题有一个minimal reproducible example,而不是一个可以工作的代码sn-p,并且只是一个你对不工作的代码的解释的文字描述,那么这个问题将会得到改善。 (也就是说,你尝试了一些东西——将 pass 设置为 0——但它并没有像你预期的那样工作。这意味着代码中有一些你不理解的东西。我们为什么要相信你对代码的理解?)跨度>