求一元二次方程的实数根

已知一元二次方程的三个系数,编程求ax2+bc十c=0方程的根,系
数a,b,c的值由键盘输入,构建-个元二次方程的实例,假
设a,b,c的值,使得b2-4ac≥0成立。


#include <stdio.h>

#include<math.h>

int main(void)

{

    double a,b,c,d,x1,x2;

    scanf("%lf,%lf,%lf",&a,&b,&c);

    d=b*b-4*a*c;

    if(d>0){

        x1=(-b+sqrt(d))/(2*a);

        x2=(-b-sqrt(d))/(2*a);

        printf("x1=%.5f\nx2=%.5f",x1,x2);

    }

    if(d==0){

        printf("x1=x2=%.5f",-b/(2*a));

    }

    if(d<0){

        x1=-b/(2*a);

        x2=sqrt(-d)/(2*a);

        printf("x1=%.5f+%.5fi\nx2=%.5f-%.5fi",x1,x2,x1,x2);

    }

    return 0;

}

网上有,输出格式有啥要求呢?

#include <stdio.h>
#include <math.h>
int main()
{
    double a,b,c,delta ;
    scanf("%lf%lf%lf",&a,&b,&c);
    delta  = b*b-4*a*c;
    if(delta ==0)
        printf("有一个根:%.2f",-b/(2*a));
    else
        printf("有两个根:%.2f,%.2f",(-b-sqrt(delta)) / (2*a),(-b+sqrt(delta)) / (2*a));
}

该回答引用GPTᴼᴾᴱᴺᴬᴵ
你可以使用以下代码来实现一元二次方程的实数根的计算,其中a、b、c分别为方程的系数:

#include <stdio.h>
#include <math.h>

int main()
{
    double a, b, c, delta, x1, x2;
    scanf("%lf%lf%lf", &a, &b, &c);

    delta = b * b - 4 * a * c;

    if (delta < 0) {
        printf("无实根\n");
    } else if (delta == 0) {
        x1 = x2 = -b / (2 * a);
        printf("x1 = x2 = %.2lf\n", x1);
    } else {
        x1 = (-b + sqrt(delta)) / (2 * a);
        x2 = (-b - sqrt(delta)) / (2 * a);
        printf("x1 = %.2lf, x2 = %.2lf\n", x1, x2);
    }

    return 0;
}


这个程序中,首先使用 scanf() 函数从键盘读入方程的系数,然后计算判别式 delta。接着使用 if/else 语句判断方程的根的情况,如果 delta 小于 0,说明方程无实根;如果 delta 等于 0,说明方程有一个实根;如果 delta 大于 0,说明方程有两个实根。在每种情况下,程序都打印出方程的实根或“无实根”这个信息。