C++求解一元二次方程


Δ =√(b^2-4ac) ,x=(-b±√(b^2-4ac))/2a
我们在求解一元二次方程时,要考虑Δ>0,=0,<0的情况
1)Δ>0时,出现两种不相同的实根,这个时候要考虑两种情况,一种是Δ是完全平方数,一种是Δ是不完全平方数,在Δ里面的数是完全平方数的时候直接按照计算公式计算即可,在Δ不是完全平方数的时候,我认为尽量让它用根号形式表示

2)Δ=0时,出现两种相同的实根,这个时候不需要考虑Δ里面的数是不是完全平方数,直接计算即可

3)Δ<0时,出现两种不相同的虚根,这个时候类似第一种情况,我认为也要考虑两种情况,一种是Δ是完全平方数,一种是Δ是不完全平方数,在Δ里面的数是完全平方数的时候直接按照计算公式计算最后加上i即可,在Δ不是完全平方数的时候,我认为也是尽量让它用根号形式表示

#include<iostream>
#include<math.h>using namespace std;int IsSqrt(int x) {//判断是不是完全平方数int i;for (i = 1; x > 0; i += 2) {x -= i;}if (x == 0)return 1;elsereturn 0;
}int main() {double a, b, c, solve1, solve2, t;cin >> a >> b >> c;t = b * b - 4 * a * c;if (a != 0) {if (t > 0) {cout << "方程有两个不同的实数根" << endl;int flag = IsSqrt(t);if (flag == 0) {cout << "方程的第一个根为" << -b / (2 * a) << "+√" << t / (4 * a * a) << endl;cout << "方程的第二个根为" << -b / (2 * a) << "-√" << t / (4 * a * a) << endl;} else {t = sqrt(t);solve1 = (-b + t) / (2 * a);solve2 = (-b - t) / (2 * a);cout << "方程的第一个根为" << solve1 << endl;cout << "方程的第二个根为" << solve2 << endl;}}if (t == 0) {cout << "方程有两个相同的实数根" << endl;t = sqrt(t);solve1 = (-b + t) / (2 * a);cout << "方程两个相同的实数根为" << solve1 << endl;}if (t < 0) {cout << "方程有两个不同的虚根" << endl;t = -t;int flag = IsSqrt(t);if (flag == 0) {cout << "方程的第一个根为" << -b / (2 * a) << "+√" << t / (4 * a * a) << "i" << endl;cout << "方程的第二个根为" << -b / (2 * a) << "-√" << t / (4 * a * a) << "i" << endl;} else {t = sqrt(t);cout << "方程的第一个根为" << -b / (2 * a) << "+" << t / (2 * a) << "i" << endl;cout << "方程的第二个根为" << -b / (2 * a) << "-" << t / (2 * a) << "i" << endl;}}}if (a == 0 && b != 0) {double x;x = -c / b;cout << "方程是一元一次方程,根为" << x << endl;}if (b == 0 && c != 0) {cout << "等式恒不成立" << endl;}if (b == 0 && c == 0) {cout << "等式恒成立" << endl;}return 0;
}

我认为不足之处是在无限不循环小数那里我没有直接用分数表示,欢迎提意见

C++求解一元二次方程相关推荐

  1. python解一元二次方程步骤-Python实现求解一元二次方程的方法示例

    Python实现求解一元二次方程的方法示例 本文实例讲述了Python实现求解一元二次方程的方法.分享给大家供大家参考,具体如下: 1. 引入math包 2. 定义返回的对象 3. 判断b*b-4ac ...

  2. java 输入 方程,用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a、b及c从命令行做参数输入 java...

    题目: 用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a.b及c从命令行做参数输入 java 答案参考: 以下程序在jdk5.0测试通过 import java.util.Sca ...

  3. 一元二次方程python脚本_Python实现求解一元二次方程的方法示例

    本文实例讲述了Python实现求解一元二次方程的方法.分享给大家供大家参考,具体如下: 1. 引入math包 2. 定义返回的对象 3. 判断b*b-4ac的大小 具体计算代码如下: # -*- co ...

  4. Python案例:四种方式编程求解一元二次方程

    文章目录 一.一元二方程求解公式 二.编程求解一元二次方程 1.直接求解一元二次方程 2.编写一元二次方程求解函数 3.编写一元二次方程类求解 (1)求实数解 (2)求复数解 4.利用sympy的so ...

  5. 利用C++求解一元二次方程

    题目:求解一元二次方程:ax²+bx+c=0 的解,其中a=1,b=-3,c=2. 分析:大家都知道一元二次方程的解有三种情况,即考虑Δ=(b²-4ac)的算术平方根,当Δ>0时,方程有两个不相 ...

  6. 【中学】求解一元二次方程

    [中学]求解一元二次方程 初中的小明已经开始学习求解一元二次方程了,下面让我们来教计算机如何求解.输入 a,b,c ,求一元二次方程 ax²+bx+c=0 的根. 包括复数根 输入: 假设 a,b,c ...

  7. C语言(求解一元二次方程的根)

    以下程序均在Visual C++6.0中运行成功 例:求方程2x^2-3x-6=0的根 #include <stdio.h> #include <math.h> void ma ...

  8. 11. 求解一元二次方程

    初中的小明已经开始学习求解一元二次方程了,下面让我们来教计算机如何求解.输入 a,b,c ,求一元二次方程 ax²+bx+c=0 的根. 输入: 假设 a,b,c均int. 输出: 要求输出的根为 d ...

  9. c++ 求解一元二次方程 全面考虑实根和虚根的情况

    题目 求解一元二次方程. 一元二次方程的定义为: ax2+bx+c=0 (1)如果b2 -4ac>0,方程有两个不同的实根,分别是: (2)如果b2 -4ac< 0,方程没有实根,但有虚根 ...

  10. c++求解一元二次方程的解

    实数解与复数解均可 #include<iostream>using namespace std;void Calculate(double a, double b, double c) { ...

最新文章

  1. 1个GPU几分钟搞定强化学习训练,谷歌新引擎让深度学习提速1000倍丨开源
  2. 依图超车争夺AI创业第一股!冲刺科创板,募资75亿为造芯,去年营收91%投向研发...
  3. Centos 7 安装Mysql5.7
  4. 学python要考什么证-学python需要考证吗?
  5. Struts2 - 在Action类中获得HttpServletResponse对象
  6. 曹大带我学 Go(7)—— 如何优雅地指定配置项
  7. python编程成果_20192217 2019-2020-2 《Python程序设计》实验四报告
  8. android加载图片+背景,Android开发中ImageLoder加载网络图片时将图片设置为ImageView背景的方法...
  9. 写给前端程序员的英文学习指南
  10. 阿里云服务器ping不通github或其他域名
  11. yapi 数据库隔天数据就全没了_Yapi 部署
  12. 获取当前时间,包括农历时间
  13. windows密码到期_如何在Windows 10中设置密码到期日期
  14. matlab中eval函数保存图片,Matlab中eval函数的使用方法。
  15. JAVA基础-GUI实践总结
  16. 抢先体验 Ubuntu 22.04 Jammy Jellyfish
  17. ACK((Acknowledge character)应答机制(kafka)
  18. daimayuan每日一题#863 吃糖果
  19. 清风数学建模学习笔记——灰色关联分析(GRA)详细解读与案例分析
  20. Git查看本机 ssh 公钥或生成公钥

热门文章

  1. 云服务器5m带宽会有什么样的速度?
  2. 组合数性质--二项式系数之和等于2^n的证明
  3. 水晶报表 php,VS2015环境下Crystal Reports(水晶报表)的安装使用
  4. 华硕计算机电源已连接未充电,笔记本电池显示“电源已接通,未充电”
  5. 001 Joiner
  6. 案例|工业物联网解决方案•污水处理厂智能监控运维云平台
  7. 腾讯元老、上市公司CTO逃离北上广,赚够钱后他在安徽建了一片200亩的农场
  8. uniapp开发微信小程序canvas动画入门
  9. 浏览器下载文件的方法总结
  10. Sublime中文显示乱码