一元二次方程
解一元二次方程的根:
一元二次方程:ax*x+bx+c=0
基本思路:
1、a=0时,此方程不是一元二次方程,而是bx+c=0,此时方程的解为x=-c/b;
2、当a≠0时,此方程才是一元二次方程,同时会出现以下情况:
(1)b*b-4*a*c=0,此时方程有两个相等的实根,即x1=x2=-b/2a;
(2)b*b-4*a*c>0,此时方程有两个不相等的实根,x1= ,x2=
(3)b*b-4*a*c<0,此方程无实根。
编程思路:
头文件选择:
#include <stdio.h>:标准输入输出代码
#include <math.h>:数学函数库,一些数学计算的公式具体实现,比如平方,开方等。Sqrt()--平方根计算
定义变量:void Fun(double a,double b,double c)
{ double x1;
double x2;
double d = b*b - 4*a*c;
因为方程的根在大多情况下是小数,所以此时定义变量用浮点型或者double型。
使用宏定义:#define EPS 0.000001
因为定义的变量为浮点型,而浮点型不能用来作比较,故而通过定义一个精度,使用时在给定范围内,可将其结果近似为0,从而完成变量与零值的比较;
算法思路:
代码:
#include <stdio.h>
#include <math.h>
#define EPS 0.000001
void Fun(double a,double b,double c)
{
double x1;
double x2;
double d = b*b - 4*a*c;
if(-EPS<=a && a<EPS)//a==0
{
x1 = x2 = -c/b;
printf("x1=%f,x2=%f\n",x1,x2);
}
else //a != 0
{
if(-EPS<=d && d<=EPS)//d==0
{
x1=x2=-b/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
else
{
if(d > EPS)
{
x1 = (-b+sqrt(d))/(2*a);
x2 = (-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f\n",x1,x2);
}
else //d<0
{
printf("无实根\n");
}
}
}
}
int main()
{
Fun(0,1,2);
Fun(1,2,1);
Fun(1,4,2);
Fun(1,1,1);
return 0;
}
相关阅读
从上面五笔学习导图,我们不难看出,五笔只包含两个部分,一是独立字。二是字根字。1 先来讲解独立字。独立字就是不用字根就可以输出的
有时候,我们需要去实现选择下拉选之后,页面上的内容根据选择的不同而进行不同的变化。我在这里需要实现的是下拉选选择的是公司,公司
Ax*x+Bx+C=0两边同时除以二次项系数A 常数项C移动到等号另一边 为了配方,两边同时加一次项系数B的二分之一的平方 最后开方整理记
在数据分析前要找到分析的目标,带着问题去分析,也就是了解前期数据分析的需求,后期,需要做数据回报才具有针对性,目的性。需求分析师是
Great Eagle 程序猿DD来源:算法面试题问题小E最近找实习的时候,被面试官问了这样一道题:如何求根号2的值?小E没能答上来,回来后向老师