求一元二次方程的解

本题目要求一元二次方程的根,结果保留2位小数。

输入格式:

输入在一行中给出3个浮点系数a、b、c,中间用空格分开。

输出格式:

根据系数情况,输出不同结果:

1)如果方程有两个不相等的实数根,则每行输出一个根,先大后小;

2)如果方程有两个不相等复数根,则每行按照格式“实部+虚部i”输出一个根,先输出虚部为正的,后输出虚部为负的;

3)如果方程只有一个根,则直接输出此根;

4)如果系数都为0,则输出"Zero Equation";

5)如果a和b为0,c不为0,则输出"Not An Equation"。

输入样例1:

2.1 8.9 3.5

输出样例1:

-0.44
-3.80

输入样例2:

1 2 3

输出样例2:

-1.00+1.41i
-1.00-1.41i

输入样例3:

0 2 4

输出样例3:

-2.00

输入样例4:

0 0 0

输出样例4:

Zero Equation

输入样例5:

0 0 1

输出样例5:

Not An Equation

题目分析:令△=b²-4ac
(1)a=b=c=0 即0=0;△=0 ;无解
(2)a=b=0 即c=0; △=0;无解
(3)a=c=0 即bx=0;△=b²;无解
(4)b=c=0 即ax²=0;△=0;无解
(5)a=0 即bx+c=0;△=b²;方程有唯一解x=-c/b
(6)b=0即ax²+c=0;△=-4ac;方程有两个不相等的虚数解
(7)c=0即ax²+bx=0;△=b²;方程有两个不相等的实数解
(8)△>0方程有两个不相等的实数解
x1=(-b+sqrt(pow(b,2)-4ac))/(2a);x2=(-b-sqrt(pow(b,2)-4ac))/(2a)
(9)△=0方程有两个相等的实数解
x1=x2=-b/(2a)
(10)△<0 即b²-4ac<0;方程有两个不相等的虚数解此时需要讨论:
<1>b=0方程的解的实部a=-b/(2
a)=0,方程有两个纯虚解0.00+bi & 0.00-bi 其中i=sqrt(4ac-b²)/(2a)
<2>b!=0方程有两个不相等的复数解a+bi & a-bi 其中a=-b/(2
a) b=sqrt(4ac-b²)/(2*a)
总结一下:上述10种情况可整理为以下三种:
(5)(7)(8)(9)【1】方程有实数解:①两个不相等的实数解②两个相等的实数解③唯一实数解
(6)(10)【2】方程有虚数解:①两个不相等的虚数解②两个不相等的纯虚数解
(1)(2)(3)(4) 【3】方程无解:①②③④

源代码:

#include <stdio.h>
#include <math.h>int main(void)
{double a,b,c,s,s1,s2,i,j;          //定义变量为double类型scanf("%lf %lf %lf",&a,&b,&c); if(a==0 && b==0 && c==0)          //a,b,c均为0{printf("Zero Equation");}else if(a==0 && b==0)             //a,b为0,c不为0{printf("Not An Equation");}else if(a==0)                //※a为0,b,c不为0 此种情况为bx+c=0,方程只有一个根x=-b/a{s=-c*1.0/b;printf("%.2f",s);}else if(b*b-4*a*c>0)              //△>0,方程有两个不相等的实数根{s1=(-b+sqrt(b*b-4*a*c))/2/a;s2=(-b-sqrt(b*b-4*a*c))/2/a;printf("%.2lf\n%.2lf",s1,s2);}else if(b*b-4*a*c==0)                //△=0,方程有两个相等的实数根{s=-b/2/a;printf("%.2lf",s);}else if(b*b-4*a*c < 0)             //△<0,属于含有复数根的情况{if(b!=0)                       //若b!=0,则方程有两个不相等的复数根{i=-b/2.0/a;j=sqrt(4*a*c-b*b)/2/a;printf("%.2lf+%.2lfi\n%.2lf-%.2lfi",i,j,i,j);}else                         //若b=0,则方程有两个纯虚根{j=sqrt(4*a*c)/2.0/a;printf("0.00+%.2lfi\n0.00-%.2lfi",j,j);}}return 0;
}

测试点如下图:

C语言 求解一元二次方程组相关推荐

  1. 用C语言求解一元二次方程组

    求ax²+bx+c=0方程的实根.其中a.b.c由键盘输入. 首先要知道求方程式的根的方法. 首先当a不等于0时方程:ax^2+bx+c=0才是一元二次方程. 1.公式法:Δ=b²-4ac,Δ< ...

  2. C语言求解一元二次方程组

    C语言代码 #include <math.h> int main() {double a,b,c;while (scanf("%lf%lf%lf", &a, & ...

  3. python 求解一元二次方程组

    最近在做笔试题的时候遇到的一道题,挺有意思的贴出来和大佬讨论一下(常规的做法,不保证全对) 题目要求: 给两个方程,字符串格式给出,保证系数为整数.如6x-7+3y=2-5x和 -5+x+y=8-x, ...

  4. 用python求解一元二次方程组

    1 引入math包 2 定义返回的对象 3 判断b*b-4ac的大小 4 计算代码如下 import math class Result:result1 = 0result2 = 0def __ini ...

  5. 用C++来解一元二次方程组

    这里用到了求根公式以及根的判别式 #include <iostream> #include <cmath> using namespace std; int main() {c ...

  6. 一元二次方程组c语言代码,一元二次方程求解程序完整代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面的代码是我刚才无聊写的.对于简单的一元多次方程的迭代 #include #include #include #define MAXTIMES 5 ty ...

  7. c语言求解热传导方程,二维稳态导热问题的数值解法.docx

    核科学与技术学院 <传热学> 二维稳态导热问题的 数值解法作业 姓名:罗晓 学号: 2014151214 班级:任课教师:李磊,张智刚 哈尔滨工程大学 核科学与技术学院 2016 年 11 ...

  8. C++用类搞定一元二次方程组

    //3.一元二次方程求解 //对于一元二次方程ax2 + bx + c = 0,解可以分为很多情况. //若该方程有两个不相等实根,首先输出1,换行,然后输出两个实根,换行 //若方程有两个相等实根, ...

  9. 用c语言求解一元二次方程(共轭根除外)

    只含有一个未知数(一元,并且未知数项的最高次数是2(二次)的整式方程叫做一元二次方程.一元二次方程经过整理都可化成一般形式ax²+bx+c=0(a≠0.其中ax²叫作二次项,a是二次项系数:bx叫作一 ...

最新文章

  1. 星巴克CEO一年赚的还没TikTok网红多???
  2. df、du、fdisk、lsblk区别
  3. 《程序员的修炼——从优秀到卓越》一一1.6 勿以专家自居
  4. 【分享】WeX5的正确打开方式(1)
  5. 恕我直言,有了这款 IDEA 插件,你可能只需要写 30% 的代码。。。
  6. Docker学习总结(12)——非常详细的 Docker 学习笔记
  7. 解决Acunetix 12中文汉化的方法
  8. 每日一记:win10无法设置上网代理
  9. 【视频学习】完结 王霸胆 -美式发音28天完美养成计
  10. vue项目运行出现66% buil 98% after emitting CopyPlugin
  11. excel下拉让函数参数部分不变
  12. 排位赛[USACO20JAN]Loan Repayment(二分+数学)
  13. 参加国企面试需要注意的点有哪些?
  14. fspecial 在MATLAB中的用法
  15. Content-Type: application/vnd.ms-excel 操作文件
  16. 比尔盖茨给青年人的十个忠告
  17. 火狐怎么导入旧的火狐数据_Firefox很棒
  18. 中国联通用户的GPRS和彩信设置方法
  19. spring context标签
  20. 实测FourEye免杀 vs 实战化白帽子如何学习

热门文章

  1. 关于电脑磁盘消失的解决方法
  2. 虚继承是什么意思_huaxiazhihuo
  3. 《淘宝店铺营销推广一册通》一2.3 热门赚钱行业网店成功秘诀
  4. 杰理AC696N串口通信实验
  5. 函数对象,嵌套,空间与作用域
  6. 切图案例实操课程二-姜威-专题视频课程
  7. 武铁机械电子工程_机械电子工程
  8. matlab最后一步出错,最后一条错误消息和相关信息
  9. 2009年5月桂林北海涠洲岛
  10. 阿里巴巴“新18罗汉”养成记