我正在尝试解决 aX2 + bX + c = 0 但我似乎无法使用数学标题(我不应该使用它)使其工作。
printf("%E",(-b+(b*b-4*a*c)E0.5)/2a);
最佳答案
使用 std::sqrt
来自标题 <cmath>
.另外,你必须写 (2 * a)
, 不是 2a
.
另一件事:不要使用教科书公式来求解二次方程。使用 the method described there .
如果您不能使用数学头文件,那么您必须实现平方根,例如。如所述there :
double my_abs(double x)
{
return x > 0 ? x : -x;
}
double my_sqrt(double x)
{
static const double eps = 1e-12;
double u = x, uold;
do { uold = u; u = (u * u + x) / (2 * u); }
while (my_abs(u - uold) < eps * x);
return u;
}
关于C++ 在数学方程式中使用 E,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364470/