程序没有响应上构建的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中调用外部函数时发生。我真的不知道该怎么做。我错过了一些简单的东西吗谢谢。

+0

尝试添加递归函数GCD的退出策略。该函数导致堆错误,我认为。如果参数 KernelPanic 2014-09-29 00:09:34

+0

听起来像你有一个无限循环。在你的'gcd'函数中,打印出'a'和'b'的值,你很快就会看到它出错的地方。 – 2014-09-29 00:09:57

+0

这会在VS2013中产生一声巨响,当然不是“程序没有响应”的消息。首先从标准的Hello World程序开始。 – 2014-09-29 00:24:29

与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