根据一元二次方程的求根公式,
x1=[-b+√(b²-4ac)]/(2a)
x2=[-b-√(b²-4ac)]/(2a)
横线上应该填:
q=sqrt(disc)/(2a)
#include<stdioh>
#include<mathh>
int main()
{
int a,b,c;
float d;
printf("请输入三个系数,以空格间隔(a b c):");
scanf("%d%d%d",&a,&b,&c);
d=(float)bb-4ac;
if(d>0)
{
printf("方程%dX^2+%dX+%d=0的根为:",a,b,c);
printf("x1=%f x2=%f\n",(-10b-sqrt(d))/20/a,(-10b+sqrt(d))/20/a);
}
else if(d==0)
{
printf("方程%dX^2+%dX+%d=0的根为:",a,b,c);
printf("x=%f\n",-10b/20/a);
}
else
{
printf("方程%dX^2+%dX+%d=0的没有实数根\n",a,b,c);
}
return 0;
}
请输入三个系数,以空格间隔(a b c):3 6 2
方程3X^2+6X+2=0的根为:x1=-1577350 x2=-0422650
最简单高效的方法,x=(-b
+/-
sqrt(bb-4ac))/2/a
先判断是否存在根再做
还有就是用切线逼近法,首先预计解得范围,x1
x2,如果从x2入手,做x2处方程的切线,交x轴于x0,y[x0]与y[x2]符号相同说明解在x1-x0之间,符号相反说明在x0-x2之间,按这个方法递归下去,直到
递归后的x0和和x1相等或者x0和x2相等,此时x0就是他的解,不知LZ明白没,这是个数学问题,就是个零点存在定理
因为x^2-2x-8=0,
所以a=1,b=-2,c=-8,
所以b^2-4ac=(-2)^2-41(-8)=4+32=36,
所以x1,2=[-b±√(b^2-4ac)]/(2a)=(2±√36)/2=(2±6)/2,
所以x1=4,x2=-2
#include "stdioh"
#include "mathh"
void f1(double a,double b,double d){
d=sqrt(d),a+=a,b=-b;
printf("x1 = %f\nx2 = %f\n",(b+d)/a,(b-d)/a);
}
void _f(double a,double b,double d){
d=sqrt(-d),a=-b/a/2,b=d/a/2;
printf("x1 = %f%+fi\nx2 = %f%+fi\n",a,b,a,-b);
}
void f0(double a,double b){
printf("x1=x2 = %f\n",-b/a/2);
}
int main(int argv,char argc[]){
double a,b,c,d;
printf("Input a, b, c(R:)\n");
scanf("%lf%lf%lf",&a,&b,&c);
if((d=bb-4ac)>0)
f1(a,b,d);
else if(d<0)
_f(a,b,d);
else
f0(a,b);
return 0;
}
运行样例:
以上就是关于这是个求一元二次方程根程序,横线上怎么填全部的内容,包括:这是个求一元二次方程根程序,横线上怎么填、c++c语言计算aX2+bX+c=0的根。程序编写、c++求方程ax2+bx+c=0的根的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)