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

标签 c++ math

我正在尝试解决 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/

相关文章:

c++ - C++ 中的模板实例化

c++ - Qt - 如何知道子部件中的内容是否已更改?

javascript - 根据连接计算网格布局?

c - 第 15 位数字后小数精度丢失 - PI 错误

c++ - 使用不同线程访问不同子数组而不同步是否安全?

c++ - 在 Boost MultiIndex 容器中移动 equal_range 时迭代器失败

c++ - 访问包含它的 vector 元素时,类对象的运算符重载不起作用?

JavaScript - 生成一个介于 1 和 5 之间的随机数,但绝不会连续两次生成相同的数字

javascript - 为线性同余生成器选择 A、C 和 M

java - 类似于 javax.vecmath.Matrix4f.rotate() 的 Android 3d 数学库( vector 、矩阵等)