本关任务:已知一元二次方程的三个系数,编程求ax2+bx+c=0
方程的根,系数a
,b
,c
的值由键盘输入,构建一个一元二次方程的实例,其中a
不等于0。
相关知识
求一元二次方程ax2+bx+c=0(a=0)
的根,取决于判别式b2−4ac
的值:
当b2−4ac>0
时,方程有两个不相等的实数根:
x1=2a−b+(b2−4ac)
x2=2a−b−(b2−4ac)
当b2−4ac=0
时,方程有两个相等的实数根:
x1=x2=2a−b
当b2−4ac<0
时,方程有两个复数根:
x1=2a−b+2a−(b2−4ac)i
x2=2a−b−2a−(b2−4ac)i
#include <stdio.h>
#include<math.h>
int main()
{
/**********Bigin**********/
double a,b,c,disc,p,q;
scanf("%lf,%lf,%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
if( disc == 0)
{
printf("x1=x2=%.5f\n",p);
}
else if( disc > 0)
{
q=sqrt(disc)/(2*a);
printf("x1=%.5lf\nx2=%.5lf\n",p+q,p-q);
}
else if( disc < 0 )
{
q=sqrt(-disc)/(2*a);
printf("x1=%.5lf+%.5lfi\nx2=%.5lf-%.5lfi\n",p,q,p,q);
}