用C语言求解一元二次方程
问题描述:
用C语言求解一元二次方程
答
#include
float f(float);
void main()
{
float a,b,c,d,x1,x2,p,q;
printf("a=");
scanf("%f",&a);
printf("b=");
scanf("%f",&b);
printf("c=");
scanf("%f",&c);
d=b*b-4*a*c;
if(a==0)
{
printf("error");
}
else
{
if(d>=0)
{
x1=(-b+f(d))/(2*a);
x2=(-b-f(d))/(2*a);
printf("x1=%f\nx2=%f",x1,x2);
}
else
{
p=(-b)/(2*a);
q=(f(-d))/(2*a);
printf("x1=%f+%fi\nx2=%f+%fi\n",p,q,p,q);
}
}
}
float f(float a)
{
float c,b;
while(a>c)
{
b=b+0.00001;
c=b*b;
}
return(a);
}