我试图得到一个数学结果,但我一直在获取分段错误,分段错误发生在“cout”行。我认为r []数组或LJ []数组中没有任何错误。分段错误数据类型
for (k = 0; k < 15; k++)
{
for (i = 0; i < 15; i++)
{
if (i == k)
{
NULL;
}
else
{
//Use the 3D distance formula
term1 = fabs(x[k] - x[i]);
term1 = pow(term1, 2);
term2 = fabs(y[k] - z[i]);
term2 = pow(term2, 2);
term3 = fabs(z[k] - z[i]);
term3 = pow(term3, 2);
result = term1 + term2 + term3;
result = sqrt(result);
r[h] = result; //Store the result in an array
h++;
}
}
}
//Calculate Lennard-Jones potential of every pair
for(itr = 0; itr < 210; itr++)
{
term1 = pow(r[itr], 12);
term1 = 1/term1;
term2 = pow(r[itr], 6);
term2 = 2/term2;
LJ[itr] = term1 - term2;
}
double Ei;
for(itr = 0; itr < 210; itr++)
{
Ei = LJ[itr] + Ei;
}
Ei = Ei/2;
cout << "The new Energy level " << Ei << endl;
seg-fault当然不在'cout'行(除非你真的做了一件真正的事情,'cout'真的很糟糕,我无法想象:D)。 LJ如何定义? –
double LJ [210]; – Josh
然后还有别的东西。粘贴更多代码。 –