求助!!!!!理解一个求一元二次根的程序!!!谢谢啦。。。
就是如下程序为什么要是趋近10的-6次方就代表趋近于0 说是float 有效小数位7位 我知道但如果0.00000001111之类的不就是直接当0赋值给了他么 那0还是可以啊??一直想不通。。。。求高手帮助#include "math.h"
main()
{float a,b,c,disc,x1,x2,p,q;
scanf(“%f,%f,%f”, &a, &b, &c);
disc=b*b-4*a*c;
if (fabs(disc)<=1e-6) /*fabs():求绝对值库函数*/ 这句
printf(“x1=x2=%7.2f\n”, -b/(2*a)); /*输出两个相等的实根*/
else
{ if (disc>1e-6)
{x1=(-b+sqrt(disc))/(2*a); /*求出两个不相等的实根*/
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%7.2f,x2=%7.2f\n", x1, x2);
}
else
{p=-b/(2*a); /*求出两个共轭复根*/
q=sqrt(fabs(disc))/(2*a);
printf(“x1=%7.2f + %7.2f i\n“, p, q); /*输出两个共轭复根*/
printf(”x2=%7.2f - %7.2f i\n“, p, q);
}
}
}