我遇到了我的歐幾里得算法問題。我在MS Visual Studio上運行這個控制檯應用程序。當我運行它時,它說「進程因堆棧溢出異常而終止」。如何解決這個異常?
我最近張貼了關於這個算法的另一個問題,但是現在我有這個問題,這是我第一次看到它。我是一名初學者程序員。
int algoritmoeuclides(int a,int b)
{
if (a%b==0)
return b;
return algoritmoeuclides(b,a%b);
}
std::pair<int, int>division(int dividendo,int divisor)
{
int resultado=0;
int residuo=0;
residuo=dividendo%divisor;
resultado=dividendo/divisor;
return std::pair<int, int>(residuo,resultado);
}
std::pair<int, int>EuclidesExtendido(int a,int b)
{
int q,r,s,t;
if (b == 0)
return std::pair<int, int>(1, 0);
else
{
std::pair<int, int>(q, r) = division(a, b);
std::pair<int, int>(s, t) = EuclidesExtendido(b, r);
}
return std::pair<int, int>(t, s - q * t);
}
int main(array<System::String ^> ^args)
{
int a=525;
int b=231;
int s,t;
std::pair<int, int>(s, t)=EuclidesExtendido(a,b);
printf("%d",algoritmoeuclides(a,b));
printf("s=%d t=%d",s,t);
getch();
}
這不是C,確保正確標記請。 – jedwards
您應該使用調試器(或打印語句)來確定程序的流程,並查看它是否符合您的意圖。 –
這是'main()'的合法聲明嗎? –