利用C语言求解一元二次方程组的解

题目:求一元二次方程的解。
注意:a,b,c是浮点数,浮点数判断是否等于0.
因为浮点数在内存中的存储方式使得,有些浮点数在内存中无法精确存储,这样就会使得浮点数的精度丢失。
因此在浮点数与0作比较时,设置适当的精度,误差在此范围内,便可认为其=0.
具体代码如下:

#include
#include
#define EXP 0.000000001
int main()
{
    float a;
    float b ;
    float c;
    printf("请输入a,b,c:");
    scanf("%f%f%f", &a, &b, &c);
    double x1 = 0.00;
    double x2 = 0.00;
    double m = b*b - 4*a*a;
    if ((a > -EXP) && (aprintf("不是一元二次方程\n");
    }
    else
    {
        if ((m>-EXP) && (mprintf("x=%d\n", x1 = (-b) / 2 * a);
        }
        else if (m > 0)
        {
            x1 = -(b + sqrt(m)) / 2 * a;
            x1 = -(b - sqrt(m)) / 2 * a;
            printf("x1=%d x2=%d\n", x1, x2);
        }
        else
        {
            printf("此方程无解\n");
        }
    }
    return 0;
}

你可能感兴趣的:(利用C语言求解一元二次方程组的解)