回复 楼主 野猪佩奇
程序代码:
#include<stdio.h>
#include<math.h>
#define EXP 0.00000001 // 由于精度的原因,float、double类型不能比较大小
int main()
{
double a = 0.0;
double b = 0.0;
double c = 0.0;
double disc,p,q;
scanf_s("%lf%lf%lf",&a,&b,&c);
if((a >= -EXP) && (a <= EXP))
{
printf("不是一元二次方程\n");
}
else
{
disc = b * b - 4 * a * c;
}
p = - b / (2 * a);
q = sqrt(disc)) / (2 * a);
if((disc >= - EXP) && (disc <= EXP))
{
printf("有两个相同的实根:x = %.2lf\n",p);
}
else if(disc > 0.0)
{
printf("x1 = %.2lf x2 = %.2lf\n",p + q,p - q);
}
else
{
printf("有两个共轭的复根: %.2lfi %.2lfi\n",p + q,p - q);
}
return 0;
}








