我正在尝试解决aX 2 + bX + c = 0但我似乎无法使用数学标题(我不应该使用它).
printf("%E",(-b+(b*b-4*a*c)E0.5)/2a);
Run Code Online (Sandbox Code Playgroud)
std::sqrt从标题中使用<cmath>.此外,你必须写(2 * a),而不是2a.
另一件事:不要使用教科书公式来求解二次方程.使用那里描述的方法.
如果你不能使用数学标题,那么你必须实现平方根,例如.如所描述的有:
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;
}
Run Code Online (Sandbox Code Playgroud)