程序没有响应上构建的Visual Studio 2013
问题描述:
第一个问题在这里,很抱歉,如果我的格式是有点过。程序没有响应上构建的Visual Studio 2013
我想写涉及在C最大公约数++作为家庭作业的一部分代码。然而,每当我去建立我的代码,我立即得到一个“程序没有响应”的消息。我试过一个基本的Hello World代码,它编译得很好。这是我的代码。
#include <iostream>
using namespace std;
int gcd(int a, int b)
{
if (b == a) return a;
else return gcd(b, a%b);
}
int main()
{
gcd(25,10);
return 0;
}
我已经尝试了很多不同的值来调用gcd,但几乎所有似乎都给我同样的错误。当使用“else”行代码时,似乎会在main中调用外部函数时发生。我真的不知道该怎么做。我错过了一些简单的东西吗谢谢。
答
与25,10的呼叫:
- 不相等的,用10打电话,5
- 不相等的,用5调用,0
- 仍然不相等,计算5%0 < - 这模0
模(师)0 isn't可能(没有进入高层数学的东西,
东西CPU不需额外做)。您可以检查坠毁在调试器,它比标准的Windows消息应该
打印更多有用的信息。
简单的解决方案:检查是否b是0与if
之前。
+0
啊jeez ..是的,我看到它。我想我不应该只信任我的教授代码片段。这完全解决了,谢谢。 – Jeriqo 2014-09-29 01:15:16
尝试添加递归函数GCD的退出策略。该函数导致堆错误,我认为。如果参数 KernelPanic 2014-09-29 00:09:34
听起来像你有一个无限循环。在你的'gcd'函数中,打印出'a'和'b'的值,你很快就会看到它出错的地方。 – 2014-09-29 00:09:57
这会在VS2013中产生一声巨响,当然不是“程序没有响应”的消息。首先从标准的Hello World程序开始。 – 2014-09-29 00:24:29