首页 > 其他分享 >主函数中要求输入一个一元二次方程的三个系数,调用函数判断该方程是否有实数解,如果有实数根,将实数解求出来。要求:书写两个用户自定义函数 判断方程式是否有解函数。 求方程的解

主函数中要求输入一个一元二次方程的三个系数,调用函数判断该方程是否有实数解,如果有实数根,将实数解求出来。要求:书写两个用户自定义函数 判断方程式是否有解函数。 求方程的解

时间:2024-12-07 18:03:12浏览次数:7  
标签:方程 函数 discriminant 实数 float 一元二次方程 root1

#include <iostream>
#include <cmath> // 用于计算平方根

// 判断一元二次方程是否有实数解的函数
bool hasRealSolutions(float a, float b, float c) {
    float discriminant = b * b - 4 * a * c;
    return discriminant >= 0;
}

// 求一元二次方程的解的函数
void solveQuadraticEquation(float a, float b, float c, float &root1, float &root2) {
    float discriminant = b * b - 4 * a * c;
    root1 = (-b + sqrt(discriminant)) / (2 * a);
    root2 = (-b - sqrt(discriminant)) / (2 * a);
}

int main() {
    float a, b, c;
    float root1, root2;

    std::cout << "请输入一元二次方程的三个系数 a, b, c: ";
    std::cin >> a >> b >> c;

    if (hasRealSolutions(a, b, c)) {
        solveQuadraticEquation(a, b, c, root1, root2);
        std::cout << "方程有实数解:" << std::endl;
        std::cout << "x1 = " << root1 << std::endl;
        std::cout << "x2 = " << root2 << std::endl;
    } else {
        std::cout << "方程没有实数解。" << std::endl;
    }

    return 0;
}

代码说明:

  1. hasRealSolutions 函数

    • 参数 abc 是一元二次方程的三个系数。
    • 返回值为布尔值,表示该方程是否有实数解。根据判别式 b * b - 4 * a * c 是否大于等于0来判断。
  2. solveQuadraticEquation 函数

    • 参数 abc 是一元二次方程的三个系数。
    • 参数 root1 和 root2 是引用参数,用于存储方程的两个实数解。
    • 计算判别式 discriminant,然后使用海伦公式计算两个实数解。
  3. main 函数

    • 定义三个浮点型变量 abc 来存储一元二次方程的三个系数。
    • 通过 std::cin 从键盘读取三个系数。
    • 调用 hasRealSolutions 函数判断方程是否有实数解。
    • 如果有实数解,调用 solveQuadraticEquation 函数计算方程的两个实数解,并输出结果。
    • 如果没有实数解,输出相应的提示信息。

标签:方程,函数,discriminant,实数,float,一元二次方程,root1
From: https://blog.csdn.net/weixin_45422672/article/details/144313910

相关文章

  • 产品经理提需求我不慌了,Doris自定义函数三剑客一把梭!
    产品经理提需求我不慌了,Doris自定义函数三剑客一把梭!打开数据分析的无限可能Doris自定义函数三剑客性能优化与最佳实践数据工程师小K盯着屏幕发愁。一个看似简单的数据分析需求,却因为复杂的业务规则让他焦头烂额。“标准SQL函数写不出来,难道要改需求?”就在这时,他......
  • 大模型,多模态大模型面试问题【代码题,DDPM,损失函数,激活函数,3DGS,Nerf,SH】
    大模型,多模态大模型面试问题【代码题,DDPM,损失函数,激活函数,3DGS,Nerf,SH】代码题:1.区间最小数乘区间最大和的最大值算法:2.二叉树中的最大路径和问题一:DDPM加噪公式为什么是根号形式,时间步T为啥这么大,通常是1000。加噪公式的根号形式时间步......
  • 版本比较工具类 - C#小函数类推荐
          此文记录的是版本比较工具类。/***版本比较工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:lzhdim@163.comBlog:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用参考:if(Ve......
  • 类模板对象做函数参数
    学习目标:类模板实例化出的对象,向函数传参的方式一共有三种传入方式:1.指定传入的类型=直接显示对象的数据类型2.参数模板化=将对象中的参数变为模板进行传递3.整个类模板化===将这个对象类型模板化进行传递#include<iostream>usingnamespacestd;#include<string>//......
  • 神经网络入门实战:(十八)Argmax函数的详细介绍,可以用来计算模型训练准确率
    Argmax函数介绍在Python中,argmax函数通常用于找出给定数组或列表中元素值最大的索引。(一)Numpy中的Argmax函数:numpy.argmax函数用于找出给定轴(axis)上最大值所在的索引。示例:importnumpyasnp#一维数组arr=np.array([1,3,2,5,4])index=np.argmax......
  • 方程求根的迭代法
    初次发布于我的个人文档。(每次都是个人文档优先发布哦)本文想简要介绍一下如何用计算机是如何用迭代法计算方程和方程组的根的。不动点迭代在高中阶段你可能学习过这样的叫蛛网图的东西:蛛网图迭代的极限就是函数的不动点。所谓不动点迭代就是利用了这样的性质。一般地,我们想......
  • 函数栈帧的创建和销毁
    文章目录函数栈帧的创建和销毁本章主题一:什么是函数栈帧二:理解函数栈帧能够解决什么问题三:函数栈帧创建与销毁解析3.1什么是栈3.2有关寄存器与反汇编指令3.3解析函数栈帧的创建和销毁3.3.1预备知识3.3.2函数的调用堆栈3.3.3准备环境3.3.4转到反汇编3.3.5函数栈帧的创建3.......
  • 什么是函数重载?函数重载的实现原理是什么?
    1)什么是函数重载?函数重载(FunctionOverloading)是指在同一个作用域内,允许存在多个同名但参数列表不同的函数。参数列表的不同可以体现在参数的个数不同、参数的类型不同,或者参数的顺序不同(虽然顺序不同在实际编程中不常见,且通常不推荐这样做以保持代码的可读性)。函数重载使得......
  • 为什么要用纯函数?
    在前端开发中,使用纯函数有很多好处,可以显著提高代码的可读性、可测试性和可维护性。以下是主要原因:可预测性:纯函数对于相同的输入总是返回相同的输出,没有副作用。这意味着更容易理解函数的行为,预测其结果,减少调试时间。例如,Math.sqrt(4)总是返回2,无论调用多少次,或者在什......
  • C# 中的字段、属性、只读属性、构造函数赋值与反射赋值的深入解析
    在C#编程中,理解字段(Fields)、属性(Properties)、只读属性(Read-OnlyProperties)、构造函数赋值(ConstructorInitialization)以及反射赋值(ReflectionAssignment)是掌握面向对象编程和高级特性的重要一步。这些概念不仅影响代码的可维护性和可读性,还直接影响程序的性能和安全性。......