简单版
#include<stdio.h>
#include<math.h>
int main()
{
float d
,x1
,x2
,a
,b
,c
;
printf("Please enter the three coefficients of the equation\n");
scanf("%f %f %f",&a
,&b
,&c
);
if(a
==0)
{
printf("This is not a quadratic equation\n");
}
else
{
d
=b
*b
-4*a
*c
;
if(d
>=0)
{
x1
=(-b
+sqrt(d
))/(2*a
);
x2
=(-b
-sqrt(d
))/(2*a
);
printf("x1=%4.3f,x2=%4.3f",x1
,x2
);
}
else printf("The equation has no real solution\n");
}
return 0;
}
加强版
#include<stdio.h>
#include<math.h>
int main()
{
double a
,b
,c
,disc
,x1
,x2
,realpart
,imagpart
;
printf("Please enter the three coefficients of the equation\n");
scanf("%lf %lf %lf",&a
,&b
,&c
);
if(fabs(a
)<=1e-6)
printf("This is not a quadratic equation\n");
else
{
disc
=b
*b
-4*a
*c
;
if(fabs(disc
)<=1e-6)
printf("This equation has two equal real roots %5.3f\n",-b
/(2*a
));
else if(fabs(disc
)>1e-6)
{
x1
=(-b
+sqrt(disc
))/(2*a
);
x2
=(-b
-sqrt(disc
))/(2*a
);
printf("This equation has two unequal real roots x1=%5.3f,x2=%5.3f\n",x1
,x2
);
}
else
{
realpart
=-b
/(2*a
);
imagpart
=sqrt(-disc
)/(2*a
);
printf("This equation has two imaginary roots\n");
printf("%5.3f+%5.3fi\n",realpart
,imagpart
);
printf("%5.3f-%5.3fi\n",realpart
,imagpart
);
}
}
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-515590.html