题解 | 计算一元二次方程

计算一元二次方程

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");
        }
        if(a != 0){
            float delta = b * b - 4 * a * c; 
            float sb = - b / (2.0 * a);//实部
            if(delta == 0){
                if(sb == -0.00){//这里不知道为什么会通不过,所以要改一下
                    sb = 0.00;
                }
                printf("x1=x2=%.2f\n",sb);
            }
            if(delta > 0){
                float xb = sqrt(delta) / (2.0 * a);//如果△大于0,根号下的“delta”为正
                printf("x1=%.2f;x2=%.2f\n",sb - xb,sb + xb);
            }
            if(delta < 0){
                float xb = sqrt(-delta) / (2.0 * a);//如果△小于0,根号下的“delta”为负
                printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",sb, xb, sb, xb);
            }

        }
    }
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
10-10 11:38
已编辑
湖南理工大学 Java
小浪_Coding:多沟通叭, 公式简历+学历一般的话难找
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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