求一元二次方程的值问题!
#include "Stdio.h"#include "Conio.h"
#include <math.h>
int main(void)
{ float a,b,c,realpart,imagpart,x1,x2,D;
scanf("%f,%f,%f",&a,&b,&c);
if(fabs(a)<=1e-6)
{ if(fabs(b)<=1e-6)
printf("it is a error\n");
else
printf("%f",-c/b);
}
else
D=b*b-4*a*c;
if(fabs(D)>1e-6)
{ x1=(-b+sqrt(D))/(a*2);
x2=(-b-sqrt(D))/(a*2);
printf("%f,%f\n",x1,x2);
}
else
if(fabs(D)<=1e-6)
printf("%f\n",-b/(2*a));
else
{ realpart=-b/(2*a);
imagpart=sqrt(-D)/(2*a);
printf("%f+%f\n",realpart,imagpart);
printf("%f-%f\n",realpart,imagpart);
}
getch();
return 0;
}
这是求方程ax2+bx+c=0的值问题,上面是我自己编的一段程序,原意是a=0时,判断b是否等于0,是的话就输出无解,不是的话就输出x的值!但我的程序不能得到这样的结果!大家看看!