Description
求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。
Input
a b c
Output
x1=? x2=?
Sample Input
4 1 1
Sample Output
x1=-0.125+0.484i x2=-0.125-0.484i
思路:注意当b*b-4*a*c<0时,应该是sqrt(4*a*c-b*b),并且复数加上i
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c;
while (scanf("%lf%lf%lf",&a,&b,&c)==3)
{
double x1,x2;
double t1,t2;
char s1='+',s2='-';
if((b*b-4*a*c)<0)
{ t1=-b/(2*a);
t2=sqrt(4*a*c-b*b)/(2*a); //复数部分
printf("x1=%.3lf%c%.3lfi ",t1,s1,t2);
printf("x2=%.3lf%c%.3lfi
",t1,s2,t2);
}
else if((b*b-4*a*c)>=0)
{
t1=-b*1.0/(2*a);
t2=sqrt(b*b-4*a*c)/(2*a);;
printf("x1=%.3lf%c%.3lf ",t1,s1,t2);
printf("x2=%.3lf%c%.3lf
",t1,s2,t2);
}
}
return 0;
}