使用c语言求一元二次方程的根

8 篇文章 1 订阅

要想使用c语言编写这个实例,就需要知道数学上的公式。

一元二次方程表达式为:a * x * x + bx + c = 0(其中,a ≠ 0)

根的判别式为:Δ = b * b - 4 * a * c;

求根公式为:

 代码思想

手动输入三个系数,分别代表二次项系数、一次项系数、常数项;

判断输入的二次项系数是否为0,如果为0,提示“输入的第一个值不合法,请重新输入!”;

如果二次项系数不为0,利用根的判别式,计算一元二次方程是否有根;

如果判别式 Δ >= 0 ,代表方程有两个根,输出根;

如果 Δ < 0 ,提示“方程无根”。

#include <stdio.h>
// 使用开根号 sqrt(d) 函数时,需要添加此头文件
#include <math.h>

int main()
{
    // 求一元二次方程的根
    // 代码思想:
    // 手动输入三个系数,分别代表二次项系数、一次项系数、常数项;
    // 判断输入的二次项系数是否为0,如果为0,提示“输入的第一个值不合法,请重新输入!”
    // 如果二次项系数不为0,利用根的判别式,计算一元二次方程是否有根;
    // 如果判别式 Δ >= 0 ,代表方程有两个根,输出根
    // 如果 Δ < 0 ,提示“方程无根”。

    float a , b , c, d, x1, x2;

    printf("请依次输入三个系数: ");
    scanf("%f %f %f", &a,&b,&c);

    if(a != 0)
    {
        d = b * b - 4 * a * c;                        // 根的判别式
        if(d >= 0)
        {
            x1 = ((-b + sqrt(d)) / 2 * a);            // 求根公式
            x2 = ((-b - sqrt(d)) / 2 * a);

            printf("x1 = %.2f;x2 = %.2f", x1, x2);
        }
        else
        {
            printf("方程无根");
        }
    }
    else
    {
        printf("输入的第一个值不合法,请重新输入!");
    }


    return 0;
}
例如1:系数 a = 0, b = 2, c = 1 时,运行结果如下

例如2:系数 a = 1, b = 2, c = 1 时,运行结果如下

例如3:系数 a = 1, b = 3, c = 2 时,运行结果如下

例如4:系数 a = 1, b = 0, c = 1 时,运行结果如下

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

麦子穗

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值