要求:求ax^2+bx+c=0方程的解。
代码:
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,x1,x2,disc,realpart,imagepart;
scanf("%lf%lf%lf",&a,&b,&c);
if(fabs(a)<=1e-6)
printf("error");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("equal roots:%8.4f\n",-b/(2*a));
else if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%8.4f and x2=%8.4f",x1,x2);
}
else
{
realpart=-b/(2*a);
imagepart=sqrt(-disc)/(2*a);
printf("%8.4f+%8.4fi\n",realpart,imagepart);
printf("%8.4f-%8.4fi\n",realpart,imagepart);
}
}
return 0;
}
核心内容:根类型的判断和根的形式处理