求一元二次方程的两个根

题目为

img


自己写的代码为

img


我感觉代码有点复杂,有没有更为简单的方式呢

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

int main(){
    float a , b , c, delta, real, imag, x1, x2;
    printf("请依次输入三个系数: ");
    scanf("%f,%f,%f", &a, &b, &c);
    if(a != 0){
        delta = 1.0 * b * b - 4.0 * a * c;
        if(delta >= 0){
            x1 = (-b + sqrt(delta)) / (2.0 * a);
            x2 = (-b - sqrt(delta)) / (2.0 * a);
            printf("Tow real roots:%.2f and %.2f", x1, x2);
        }
        else
        {
            real = -b / (2.0*a);
            imag = sqrt(-delta) / (2.0 * a);
            printf("Tow complex roos:%.2f+%.2fj and %.2f-%.2fj",real,imag,real,imag);
        }
    }
    else
    {
        printf("a can not be 0!");
    }
    return 0;
}