题解 | #计算一元二次方程#
计算一元二次方程
https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26
#include <stdio.h>
#include <math.h>
int main() {
float a,b,c,d,x1,x2,m,n;
while(~scanf("%f%f%f",&a,&b,&c))
{
d=b*b-4*a*c;
if (a==0)
{
printf("Not quadratic equation");
}
else if(d==0)
{
x1=x2=-b/(2*a);
if (fabs(x1) < 1e-6)
{
printf("x1=x2=0.00\n");
} else {
printf("x1=x2=%.2f\n", x1);
}
}
else if(d>0)
{
x1=(-b/(2*a))-sqrt(d)/(2*a);
x2=(-b/(2*a))+sqrt(d)/(2*a);
printf("x1=%.2f;x2=%.2f",x1,x2);
}
else
{
m=-b / (2*a),n=sqrt(-d ) / (2*a);
if (n > 0) {
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", m, n, m, n);
} else if (n < 0) {
printf("x1=%.2f+%.2fi;x2=%.2f-%.2fi\n", m, -n, m, -n);
} else {
if (fabs(m) < 1e-6) {
printf("x1=x2=0.00\n");
} else {
printf("x1=x2=%.2f\n", m);
}
}
}}
return 0;
}
修修改改,终于做出来了
查看13道真题和解析