您的位置:首页 > 编程语言 > C语言/C++

C语言下一元二次方程的求根公式

2009-02-03 17:27 1291 查看
求ax2+bx+c=0方程的根,a,b,c由键盘输入,设b2-4ac>0。

求根公式为:

       




 

则x1=p+q

x2=p-q

源程序如下:

#include<math.h>

main()

{

 
float a,b,c,disc,x1,x2,p,q;

 
scanf(“a=%f,b=%f,c=%f”,&a,&b,&c);

 
disc=b*b-4*a*c;

 
p=-b/(2*a);

q=sqrt(disc)/(2*a);

x1=p+q;x2=p-q;

 
printf(“\nx1=% 5.2f\nx2=%5.2f\n”,x1,x2);

}

 

下面是一元二次方程求根公式的推导

配方法:

1.化二次系数为1.

x^2+(b/a)x+c/a=0

2两边同时加上一次项系数一半的平方;

x^2+(b/a)x+(b/2a)^2=(b/2a)^2-c/a

3用直接开平方法求解.

{x+(b/2a)}^2=(b^2-4ac)/4a^2



b^2-4ac>=0 (a>0)时

x+b/2a=+ -根号下{(b^2-4ac)/4a^2}

x=-b/2a+ -根号下{(b^2-4ac)/4a^2}=-b+ -根号下b^2-4ac /2a

所以、ax2+bx+c=0(a≠0)中.

若b=0,方程有两个互为相反数实根.

若c=0,方程有一根为零.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: