题解 | #计算一元二次方程#
计算一元二次方程
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; }