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. mybatis3进行模糊查询的总结
  2. 数据结构 -- 队列
  3. [Google Guava] 6-字符串处理:分割,连接,填充
  4. QT的QHoverEvent类的使用
  5. 上传jar包到Apache Archiva本地仓库
  6. [设计模式]模板方法模式
  7. Redis-Bitmap介绍及使用
  8. python使用datetime获取两个时间的时间差,与时间的加减运算
  9. (96)自动售货机状态转移图,面试必问(二十)(第20天)
  10. Linux中Docker常用命令
  11. php-有时候你会疑惑的小问题
  12. ls命令具有一个-r选项,可以递归的列出子目录中的内容。请编写一个具有同样功能的程序。...
  13. 下血本买的!2021Java高级面试题
  14. python 递归目录和文件 修改主组_python下递归遍历目录和文件的方法介绍
  15. html评分图标,Bootstrap图标实现移动端的星星评分功能
  16. 常见笔顺错误的字_[转载]常见笔画笔顺易错字大全
  17. 2014年9月-前端开发月刊
  18. android启动接受不到boot_complete广播,android-BOOT_COMPLETED从未收到
  19. 编解码学习笔记(七):微软Windows Media系列
  20. 在训练的时候loss增大怎么办

热门文章

  1. Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
  2. LidarSLAM(三):EVO- SLAM轨迹精度评价工具
  3. 修改才是写作的本质所在
  4. 手把手教Python使用微信聊天记录生成词云
  5. 服务器被入侵怎么办,如何预防
  6. 计算机主机电源排线怎么取,电脑电源的线怎么接? 机箱电源线接法图解
  7. 安装内存条后系统蓝屏怎么解决
  8. 中国AI公司会议室取名简史
  9. 澳洲那个大学计算机专业好,澳洲哪个大学计算机专业比较好
  10. 为什么会有这么多中间表?