求解一个一元二次方程的解
2016-12-11 10:19
225 查看
求解方程方程的根
分为三种情况讨论,程序中要注意浮点数与0相等的比较方法。
#include <stdio.h>
#include <math.h>
#define EXP 0.0000001
int main()
{
double a, b, c, m, k, t, s, x1, x2;
printf("按顺序输入系数: \n");
scanf_s("%lf%lf%lf", &a, &b, &c);
k = b*b - 4 * a*c;
t = -b / (2.0*a);
m = sqrt(k);
s = m / (2.0*a);
x1 = t + s;
x2 = t - s;
if ((a > -EXP) && (a<EXP))
printf("该方程不是一元二次方程");
else
{
if ((k >= -EXP) && (k <=
EXP))
{
printf("x=%lf \n", x1);
}
else if (k>0.0)
{
printf("x1=%lf,x2=%lf \n", x1, x2);
}
else
{
printf("方程有两个共轭复根");
}
}
return 0;
}
分为三种情况讨论,程序中要注意浮点数与0相等的比较方法。
#include <stdio.h>
#include <math.h>
#define EXP 0.0000001
int main()
{
double a, b, c, m, k, t, s, x1, x2;
printf("按顺序输入系数: \n");
scanf_s("%lf%lf%lf", &a, &b, &c);
k = b*b - 4 * a*c;
t = -b / (2.0*a);
m = sqrt(k);
s = m / (2.0*a);
x1 = t + s;
x2 = t - s;
if ((a > -EXP) && (a<EXP))
printf("该方程不是一元二次方程");
else
{
if ((k >= -EXP) && (k <=
EXP))
{
printf("x=%lf \n", x1);
}
else if (k>0.0)
{
printf("x1=%lf,x2=%lf \n", x1, x2);
}
else
{
printf("方程有两个共轭复根");
}
}
return 0;
}
相关文章推荐
- 一个一元二次方程求解编程引申的两个知识点(abs和fabs的区别以及浮点数比较相等)
- 一个简单的一元二次方程求解的过程
- [编程难题]编写一个求解时间满足约束的的算法.说明内详
- 一个分酒问题的求解
- 用动态规划求解的一个例题
- 一个数组的求解
- Java类求解一元二次方程的根
- 面试题解(5):给出一个数n,O(1)求解1到n这些数中1出现的次数
- 一个让人发狂的PI求解C程序
- 一个搜索问题的求解
- 求解一个正整数有可能可以被表示为 n个连续正整数之和
- 求解一个设计到ntext text image的数据类型触发器
- 一个sql语句的经典问题,求解!
- 分析midea0978的《一个C#算法分析求解》(一)
- 分析midea0978的《一个C#算法分析求解》(三)(完)
- 求解一个flapping问题,双端口可学一个MAC
- 一个让人发狂的PI求解C程序
- 【例子】一个小益智游戏(过河游戏)的求解
- [编程难题]编写一个求解时间满足约束的的算法.说明内详
- 一个难解的矩阵问题~~求解