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

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

输入:

假设 a,b,c均int。

输出:

要求输出的根为 double 型,保留 6 位小数。

样例:

序号 测试输入 期待的输出 额外进程
1 0 0 0↵ Input error!↵ 0
2 0 0 10↵ Input error!↵ 0
3 10 0 0↵ x1=x2=0.000000↵ 0
4 10 20 0↵ x1=0.000000↵
x2=-2.000000↵
0
5 10 0 20↵ x1=1.414214i↵
x2=-1.414214i↵
0

思路

先观察样例可以知道,输出应该是保留六位小数,具体是四舍五入还是直接舍弃可以通过尝试确定
同样地,观察样例,我们应该将输入分为三种情况:一元二次方程、一元一次方程和“非方程”
那么直接地,我们考虑到先分类再通过求根公式解出答案:

流程图


其中解二次方程的流程图为:

代码

#include <stdio.h>
#include <math.h>
int main()
{int a,b,c;scanf("%d %d %d",&a,&b,&c);if(a==0&&b==0)printf("Input error!\n");else if(a==0&&b!=0){double ss =-(double)c/b;printf("x=%.6lf\n",ss==0?fabs(ss):ss);}else{double Del = b*b-4*a*c,p=-b/(2.0*a),q=sqrt(fabs(Del))/(2.0*a);if(Del==0)printf("x1=x2=%.6lf\n",p);else if(Del>0)printf("x1=%.6lf\nx2=%.6lf\n",p+q,p-q);else if(p!=0)printf("x1=%.6lf+%.6lfi\nx2=%.6lf-%.6lfi\n",p,q,p,q);elseprintf("x1=%.6lfi\nx2=-%.6lfi\n",q,q);}return 0;
}

想一下为什么是2.0*a而不是2*a

【中学】求解一元二次方程相关推荐

  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. C语言(求解一元二次方程的根)

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

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

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

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

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

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

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

最新文章

  1. SpringCloud Alibaba微服务实战(六) - 路由网关(Gateway)
  2. 2022 AAAI Fellow放榜!SAIL首席科学家颜水成、港科大教授冯雁等10人入选
  3. 批阅论文和作业Python程序助手
  4. 【OpenCV3】cv::Mat中最值和均值的求解
  5. 跟谁学、有道营销费用大于营业收入,在线教育企业烧钱大战何时休?
  6. 正定小主人机器人_机器人书苑,迸发不一样的光彩
  7. [html] iOS下页面如何启动加载时显示画面图片?如何设置大小?它有什么好处?
  8. (十二)linux内核定时器
  9. 一个人的命运决定于晚上8点到10点之间...
  10. Mysql 8.0 遇到用遇到的几个问题及解决办法
  11. Django 配置出错模板
  12. open_flash_chat
  13. javascript正则表达式验证IP,URL
  14. arcgis交通可达性分析步骤_【规划广角】街道慢行品质的多维度评价与导控策略——基于多源城市数据的整合分析...
  15. 【NLP】谷歌综述论文 Efficient Transformers 阅读笔记
  16. 微信小程序的学习资料销售平台
  17. 表情包生成引流源码 - Jason原创
  18. 实验分享丨迅为IMX6ULL开发板点亮第一个led灯
  19. 人工智能培训学校学哪些内容
  20. 关于继承BaseServlet后为什么form表单中必须加上method=“post”

热门文章

  1. [SEO知识]如何通过SEO思维收割各大平台的流量?
  2. 演讲培训——荣耀时刻
  3. 乐行学院Redis5学习教程 第一章redis5的安装
  4. 苹果微信换行怎么打_微信两根毛表情怎么打出来?左右小辫子符号苹果安卓手机教程介绍...
  5. 小米5s Plus安装类原生系统
  6. ​【技术】机器视觉技术原理解析及应用领域
  7. 简单七个步骤写一份策划方案(上)
  8. 共享单车借力互联网保险,二者会擦出怎样的火花?
  9. 基于深度学习的玫瑰向日葵分类系统
  10. 蒸馏论文三(Similarity-Preserving)