当代码值很小时,我的代码有效。 [a = 1,gos = 0.5,N = 1] & [a = 1,gos = 0.2,N = 2]。输入为高值时程序崩溃
但是,输入更大的值时会崩溃。例如[a = 10,gos = 0.01,N = 18] & [a = 50,gos = 0.01,N = 64]。
我该如何解决?
下面的代码:
#include <cstdlib>
#include <iostream>
using namespace std;
double num_trunks(double A, double B, int N);
double num_trunk_checker(double B, double gos, int N, double A);
double num_trunks(double A, double B, int N)
{
double gos_prev = 1;
double gos;
int k = 1;
while (k != (N+1))
{
gos = (A*gos_prev)/(k+(gos_prev)*A);
gos_prev = gos;
k++;
};
num_trunk_checker(B,gos,N,A);
}
double num_trunk_checker(double B, double gos, int N, double A)
{
if (B != gos)
{
N = N + 1;
num_trunks(A,B,N);
}
else
{
cout << "Number of trunks: " << N << "\n";
}
}
int main(int argc, char *argv[])
{
double A, gos;
int N = 1;
cout << "A: ";
cin >> A;
cout << "gos: ";
cin >> gos;
num_trunks(A,gos,N);
system("PAUSE");
return EXIT_SUCCESS;
}
崩溃意味着??? – SiB 2012-08-10 15:15:33
你的调试器指向哪一行? – Flexo 2012-08-10 15:17:49
程序执行后停止工作。 – Afungus 2012-08-10 15:17:53