C++在数学方程中使用E.

use*_*444 2 c++ math

我正在尝试解决aX 2 + bX + c = 0但我似乎无法使用数学标题(我不应该使用它).

printf("%E",(-b+(b*b-4*a*c)E0.5)/2a);
Run Code Online (Sandbox Code Playgroud)

Ale*_* C. 7

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)

  • @user - 一个C++课程作业,其中唯一允许的标题是"<stdio.h>"?不是`<iostream>`,甚至不是`<cstdio>`,而是`<stdio.h>`` 我的第一个建议是你应该要求退款. (2认同)