【发布时间】:2023-04-04 07:21:01
【问题描述】:
#include <iostream>
int maxComDiv(int mayor, int menor)
{
int resto = mayor % menor;
if (resto > 0) maxComDiv(menor, resto);
else return menor;
}
int main()
{
std::cout << "max comon divisor: " << maxComDiv(3654, 1365) << std::endl;
}
使用 Visual Studio 2015 社区更新 2 --> 在发布模式下失败。好在调试模式。 使用 mingw64 --> 在两种模式下都很好。
【问题讨论】:
-
如果条件
resto > 0为真,函数返回什么? -
@JimmyB bad results 似乎表明程序给出了结果,这意味着编译成功,那么我的问题是:编译成功后,不同的警告级别会导致不同的输出代码吗?
-
“失败”不是可接受的问题描述。
-
告诉我们您所说的“失败”是什么意思。每种情况下可执行文件的输出是什么?
-
如果我表达不正确,我深表歉意。我英语说得不好。当我说可执行文件失败时,意味着不会产生正确的结果。在这种情况下,正确的结果是 21。vs2015-release mode: result is random。
标签: c++ visual-studio