//求ax2+bx+c=0方程的解
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c, disc, x1, x2, realpart, imagpart;
scanf("%lf,%lf,%lf", &a, &b, &c);
printf("The equation");
if (fabs(a) <= 1e-6)
//用来判断a是否等于0,认为当a的绝对值小于10的-6次方的时候,就将a视作0.
printf("is not a quadratic\n");
else
{
disc = b*b - 4 * a*c;
if (fabs(disc) <= 1e-6)
printf("has two 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("has distinct real roots:8.4f and %8.4f\n", x1, x2);
}
else
{
realpart = -b / (2 * a);//realpart是复根的实部
imagpart = sqrt(-disc) / (2 * a);//imagpart是复根的虚部
printf("has complex roots:\n");
printf("8.4f+8.4fi\n", realpart, imagpart);//输出一个复数
printf("%8.4f-8.4fi\n", realpart, imagpart);//输出另一个复数
}
}
return 0;
}
vs2015编译器
1,2,2
The equationhas complex roots:
8.4f+8.4fi
-1.0000-8.4fi
请按任意键继续. . .
2,6,1
The equationhas distinct real roots:8.4f and -0.1771
请按任意键继续. . .
加下划线的地方是为什么???