#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 --> 在 Release模式下失败。那么在 Debug模式。 使用 mingw64 --> 在两种模式下都很好。
最佳答案
程序的行为未定义,因为macComDiv
的return
值未在所有控件上定义路径。
我想你是想写 if (resto > 0) return maxComDiv(menor, resto);
(在 C++ 中没有隐式返回值)。
这说明了调试版本和发布版本之间的差异。
关于c++ - 为什么在 "release "模式下生成的可执行文件给出了错误的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36647598/