题解 | #计算一元二次方程#

计算一元二次方程

https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26

#include <stdio.h>
#include <math.h>//开根号函数sqrt()需要引用的头文件
int main() {
    float a=0,b=0,c=0;
    while((scanf("%f %f %f",&a,&b,&c))!=EOF)
    {
        float Delta=b*b-4*a*c;//计算方程的Δ
        if(!a) printf("Not quadratic equation");//a==0不能构成二元一次方程的情况
        else
        {
            float real_part=0-b/(2*a);//如果只是-b/(2*a),当b==0时,real_part的值为-0
            float imag_part=Delta>0?sqrt(Delta)/(2*a):sqrt(-Delta)/(2*a);//有解和无解共用一个sqrt(Δ),前提是明白实部虚部与Δ之间的关系
            if(Delta==0)
            {
                printf("x1=x2=%.2f\n",real_part);
            }
            else if (Delta>0)
            {
                printf("x1=%.2f;x2=%.2f\n",real_part-imag_part,real_part+imag_part);
            }
            else
            {
                printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",real_part,imag_part,real_part,imag_part);
            }
        }
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
10-11 15:42
皖西学院 Java
青鱼LINK:我硕士,也是java0面试,吾道不孤
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务