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

计算一元二次方程

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;
}

全部评论

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务