题解 | 计算一元二次方程



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

int main() {
    double a, b, c;
    double x1,x2;
    while(scanf("%lf %lf %lf",&a,&b,&c) != EOF){
        if(a==0){
            printf("Not quadratic equation\n");
        }
        else{
            double delt = b*b - 4*a*c;
            if(delt==0){
                x1 =  ((-b)/(2.0*a))+0;   // 此处+0是为了防止-0.00的出现
                printf("x1=x2=%.2lf\n",x1);
            }
            else if (delt>0) {
                x1 =  ((-b-sqrt(delt)))/(2.0*a);
                x2 =  ((-b+sqrt(delt)))/(2.0*a);
                printf("x1=%.2lf;x2=%.2lf\n",x1,x2);
            }
            else{
                double m = sqrt(-delt);
                printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\n",(-b/(2.0*a)),m/2.0/a,(-b/(2.0*a)),m/2.0/a);
            }
        }
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务