求一元二次方程的根
2018-12-30 15:12
225 查看
本题目要求一元二次方程的根,结果保留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 |
---|
# include <stdio.h> # include <math.h> int main() { double a; double b; double c; double data; double x1; double x2; double t; scanf("%lf", &a); scanf("%lf", &b); scanf("%lf", &c); if (fabs(a)<=1e-6 && fabs(b)<=1e-6 && fabs(c)<=1e-6 ) { printf("Zero Equation\n"); return 0; } if (fabs(a)<=1e-6 && fabs(b)<=1e-6 && !(fabs(c)<=1e-6)) { printf("Not An Equation\n"); return 0; } data = b * b - 4 * a * c; if (!(fabs(a)<=1e-6)) { if (data > 0) { x1 = (-b + sqrt(data)) * 0.5 / a; x2 = (-b - sqrt(data)) * 0.5 / a; if (x1 < x2) { t = x1; x1 = x2; x2 = t; } printf("%.2lf\n", x1); printf("%.2lf\n", x2); } if (data < 0) { if (fabs(b) <= 1e-6) { printf("+%.2lfi\n", fabs(sqrt(-data) * 0.5 / a)); //纯虚数的情况 printf("-%.2lfi\n", fabs(sqrt(-data) * 0.5 / a)); } else { printf("%.2lf+%.2lfi\n", -b * 0.5 / a, fabs(sqrt(-data) * 0.5 / a)); printf("%.2lf-%.2lfi\n", -b * 0.5 / a, fabs(sqrt(-data) * 0.5 / a)); } } if (fabs(data) <= 1e-6) printf("%.2lf\n", -b * 0.5 / a); } else printf("%.2lf\n", -c / b); return 0; }
相关文章推荐
- 求一元二次方程的根
- C::求一元二次方程的根
- 39.输入任意的a,b,c求一元二次方程ax*x+bx+c=0的根
- 分支-18. 求一元二次方程的根
- 程序设计:求一元二次方程的根
- 求一元二次方程
- 求一元二次方程的根的个数
- 程序设计实习MOOC / 程序设计与算法(一)第三周测验(2017冬季)2:求一元二次方程的根
- 求一元二次方程的解
- 分支-18. 求一元二次方程的根
- 求一元二次方程a*x*x+b*x+c=0的3个根
- 编程求一元二次方程ax2+bx+c=0的根
- 求一元二次方程的解
- 求一元二次方程求根公式与韦达定理.
- 求一元二次方程
- 求一元二次方程的根
- java十三周封装一个求一元二次方程根的类SquareEquation,要求考虑解方程的异常,再编写一个窗口类EquationFrame。要求窗口使用三个文本框和一个文本区,其中三个文本框用来显示生更
- 求一元二次方程的解
- 第九周项目5-求一元二次方程的根
- 写出求一元二次方程根的流程图