题解 | #计算一元二次方程#
计算一元二次方程
https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26
#include <stdio.h>
#include <math.h>//开根号函数sqrt()需要引用的头文件
int main() {
float a=0,b=0,c=0;
while((scanf("%f %f %f",&a,&b,&c))!=EOF)
{
float Delta=b*b-4*a*c;//计算方程的Δ
if(!a) printf("Not quadratic equation");//a==0不能构成二元一次方程的情况
else
{
float real_part=0-b/(2*a);//如果只是-b/(2*a),当b==0时,real_part的值为-0
float imag_part=Delta>0?sqrt(Delta)/(2*a):sqrt(-Delta)/(2*a);//有解和无解共用一个sqrt(Δ),前提是明白实部虚部与Δ之间的关系
if(Delta==0)
{
printf("x1=x2=%.2f\n",real_part);
}
else if (Delta>0)
{
printf("x1=%.2f;x2=%.2f\n",real_part-imag_part,real_part+imag_part);
}
else
{
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",real_part,imag_part,real_part,imag_part);
}
}
}
return 0;
}