#include <stdio.h>
#include <math.h>
int main(void)
{
double a,b,c,disc,x1,x2,imagpart,realpart,m,n;
printf("please input a,b,c(a!=0):\n");
scanf("%lf%lf%lf",&a,&b,&c);
disc = b * b - 4 * a * c;
m = - b / (2 * a);
n = sqrt(disc) / (2 * a);
if (fabs(disc) < 1e-8)
{
x1 = x2 = m; //有两个相等实根
printf("x1=x2=%8.2f\n",x1);
}
else
if (disc > 0)
{
x1 = m + n,x2 = m - n; //有两个不等实根
printf("x1=%8.2f\t,x2=%8.2f\n",x1,x2);
}
else
{
realpart = m;
imagpart = sqrt(-disc) / (2 * a); //有两个共轭复根
printf("x1=%8.2f+%.2fi\t,x2=%8.2f-%.2fi\n",realpart,imagpart,realpart,imagpart);
}
return 0;
}
温馨提示:内容为网友见解,仅供参考