੭ ᐕ)੭*⁾⁾889 2025-12-28 15:59 采纳率: 60%
浏览 6
已采纳

不会写,查出来的答案不是很理解

求方程a(xx) +bx+c=0 的根,用三个函数分别求当大于Δ=bb −4ac大于0、等于0和小于0时方程的根,并输出结果。从主函数中输入a,b,c的值。

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-12-28 15:59
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题理解

    您想要求出二次方程 a(x^2) + bx + c = 0 根的不同情况下的结果,具体来说是当判别式 Δ = b^2 - 4ac 大于 0、等于 0 和小于 0 时的结果。

    解决方案

    我们可以使用 C++ 语言来实现这个功能。以下是核心代码:

    #include <iostream>
    #include <cmath>
    
    void solveQuadratic(double a, double b, double c) {
        double delta = b * b - 4 * a * c;
    
        if (delta > 0) {
            // 大于 0 时,根为实数
            double root1 = (-b + sqrt(delta)) / (2 * a);
            double root2 = (-b - sqrt(delta)) / (2 * a);
            std::cout << "根为实数,根分别为:" << root1 << " 和 " << root2 << std::endl;
        } else if (delta == 0) {
            // 等于 0 时,根为重根
            double root = -b / (2 * a);
            std::cout << "根为重根,根为:" << root << std::endl;
        } else {
            // 小于 0 时,根为虚数
            double realPart = -b / (2 * a);
            double imaginaryPart = sqrt(-delta) / (2 * a);
            std::cout << "根为虚数,根分别为:" << realPart << " + " << imaginaryPart << "i 和 " << realPart << " - " << imaginaryPart << "i" << std::endl;
        }
    }
    
    int main() {
        double a, b, c;
        std::cout << "请输入 a、b、c 的值:";
        std::cin >> a >> b >> c;
    
        solveQuadratic(a, b, c);
    
        return 0;
    }
    

    使用说明

    1. 编译并运行该程序。
    2. 在程序提示时输入 abc 的值。
    3. 根据判别式的值,程序会输出相应的根结果。

    注意

    • 该程序假设 abc 是双精度浮点数。
    • 如果 a 等于 0,则该程序会抛出异常,因为二次方程的判别式会导致除以零的错误。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已采纳回答 12月30日
  • 创建了问题 12月28日