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

计算一元二次方程

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

#include <stdio.h>
#include <math.h>
int main() {
    float a,b,c;
    while(scanf("%f %f %f",&a,&b,&c)!=EOF)
    {
        if(a==0)
        {
            printf("Not quadratic equation\n");
        }
        else
        {
            float flag = b*b-(4*a*c);
            if(flag==0)
            {
                if(b==c&&c==0)//b和c任意一个为零,另一个也为零
                {
                    printf("x1=x2=0.00\n");
                }
                else
                {
                    printf("x1=x2=%.2f\n",-b/(2*a));//flag为0,不用再写
                }
            }
            else if(flag>0)
            {
                float x1 = (-b-sqrt(flag))/(2.0*a);
                float x2 = (-b+sqrt(flag))/(2.0*a);
                printf("x1=%.2f;x2=%.2f",x1,x2);
            }
            else
            {
                float image = sqrt(-flag)/(2.0*a);
                float real = -b/(2.0*a);
                if(image<0)//注意x1虚部小于x2虚部系数
                    image = -image;
                printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",-b/(2*a),image,-b/(2*a),image);
            }
        }
    }
    return 0;
}

全部评论

相关推荐

06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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