6.求 ax^2+bx+c=0 的根。分别考虑 d=b^2-4ac 大于 0,等于和小于 0 这 3 种情况

6.求 ax^2+bx+c=0 的根。分别考虑 d=b^2-4ac 大于 0,等于和小于 0 这 3 种情况

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double a,b,c,x1,x2;
    cout<<"请输入一元二次方程的系数(a,b,c):"; 
    cin>>a>>b>>c; 
    if(b*b-4*a*c>=0)        //判断方程是否有实数解 
    {
        cout<<"************************"<<endl; 
        cout<<"该方程有实数解"<<endl;         
        cout<<"************************"<<endl; 
        x1=(-b+sqrt(b*b-4*a*c))/(2*a);            //方程的根 
        x2=(-b-sqrt(b*b-4*a*c))/(2*a);            //方程的根
        cout<<"方程的根为"<<x1<<"和"<<x2<<endl;
    }
        
    else if(b*b-4*a*c<=0)
        cout<<"该方程无实数根"<<endl;
    
    return 0; 
}

https://blog.csdn.net/weixin_42226824/article/details/127762866

【以下回答由 GPT 生成】

问题解答

为了求解一元二次方程 ax^2+bx+c=0 的根,我们可以使用下面的步骤:

  1. 首先,需要在C语言中定义三个浮点数变量 abc,分别表示方程的三个系数。
  2. 接着,我们需要计算判别式 d=b^2-4ac 的值。根据判别式的值,可以分为三种情况进行处理。
    • 如果 d 大于0,则方程有两个实数解。我们可以使用以下公式计算两个解:x1 = (-b + sqrt(d)) / (2*a)x2 = (-b - sqrt(d)) / (2*a),其中 sqrt() 是求平方根函数。
    • 如果 d 等于0,则方程有一个实数解。我们可以使用以下公式计算解:x = -b / (2*a)
    • 如果 d 小于0,则方程没有实数解,而是有两个复数解。我们无法直接在C语言中计算复数,但可以输出实部和虚部的值。
  3. 我们需要在程序中根据判别式 d 的值,进行条件判断来输出不同的解。如果 d 大于0,则输出两个实数解;如果 d 等于0,则输出一个实数解;如果 d 小于0,则输出两个复数解。

下面是一个示例代码,演示了如何在C语言中求解一元二次方程的根以及处理判别式的不同情况:

#include <stdio.h>
#include <math.h>

int main() {
    float a, b, c, d, x1, x2;

    printf("请输入方程的三个系数:\n");
    scanf("%f %f %f", &a, &b, &c);

    // 计算判别式
    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\n", x1, x2);
    }
    else if(d == 0) {
        // 计算一个实数解
        x1 = -b / (2 * a);
        printf("方程的一个实数解为:x = %.2f\n", x1);
    }
    else {
        // 输出两个复数解的实部和虚部
        float realPart = -b / (2 * a);
        float imaginaryPart = sqrt(-d) / (2 * a);
        printf("方程的两个复数解为:x1 = %.2f + %.2fi,x2 = %.2f - %.2fi\n", realPart, imaginaryPart, realPart, imaginaryPart);
    }

    return 0;
}

这段代码可以接收用户输入的方程系数,然后根据判别式的值输出不同情况下的解。

注意: 为了计算平方根和复数的部分,我们需要包含数学库 math.h。同时要注意,由于计算机的有限精度,可能会对结果产生一定的误差。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^