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

计算一元二次方程

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

#include<stdio.h>
#include<math.h>
int main()
{
    float a,b,c;
    float dert;
    float x1,x2;
    float x01;
    while(scanf("%f %f %f",&a,&b,&c)!=EOF)
    {
        if(a==0) printf("Not quadratic equation\n");
        else
        {
            dert=b*b-4*a*c;
            if(dert==0)
            {
                if(b==0)
                {
                    printf("x1=x2=0.00\n");
                }
                else
                {
                    x1=x2=(0-b)/(2*a);
                    printf("x1=x2=%.2f\n",x1);
                }
            }
            else if(dert>0)
            {
                x1=(0-b)/(2*a)-sqrt(dert)/(2*a);
                x2=(0-b)/(2*a)+sqrt(dert)/(2*a);
                printf("x1=%.2f;x2=%.2f\n",x1,x2);
            }
            else if(dert<0)
            {
                float i1,i2;
                float i=sqrt(0-dert)/(2*a);
                x01=(0-b)/(2*a);
                if(i<0)
                {
                    i1=i;
                    i2=0-i;
                    printf("x1=%.2f%.2fi;x2=%.2f+%.2fi\n",x01,i1,x01,i2);
                }
                else
                {
                    i1=i;
                    i2=i;
                    printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",x01,i1,x01,i2);
                }
            }
        }
    }
    return 0;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务