当前位置 : 主页 > 编程语言 > c++ >

C一元二次方程求解

来源:互联网 收集:自由互联 发布时间:2021-06-23
#includestdio.h #include stdlib.h #include math.h int main() { // putchar输出字符,getchar输入字符, printf格式输出,scanf格式输入, puts输出字符串, gets输入字符串 // 一元二次方程求解 float a, b, c; printf( " I
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main() {
    // putchar输出字符,getchar输入字符, printf格式输出,scanf格式输入, puts输出字符串, gets输入字符串
    // 一元二次方程求解
    float a, b, c;
    printf("Input a ,b , c :");
    scanf("%f %f %f", &a, &b, &c);
    if (fabs(a) <= 1e-15)    //条件:当|a|<0 时  可以改成<=EPS
    {                     //1e-15  表示一个极小的数  浮点型零就是一个近似值
        printf("不是一元二次方程");
        printf("x = %.2f", c / b);
        exit(0);              //执行到此处 程序返回0 并退出
    } else {
        float disc, p, q, x1, x2;
        disc = b * b - 4 * a * c;
        p = -b / (2 * a);
        q = sqrt(fabs(disc)) / (2 * a);
        if (fabs(disc) <= 1e-15) {
            printf("x1 = x2 = %.2f", p);
        } else if (disc > 1e-15) {
            printf("x1 = %.2f, x2 = %.2f", p + q, p - q);
        } else  //(德尔塔小于0 )
        {
            printf("x1 = %.2f+%.2fi\n", p, q);
            printf("x1 = %.2f-%.2fi\n", p, q);
        }

    }
    return 0;
}
网友评论