C/C++ 函式(求一元二次方程的根)
阿新 • • 發佈:2018-12-11
題目描述
求一元二次方程ax^2+bx+c=0的根。
輸入
方程的三個係數a、b、c的值。
輸出
方程的根。
樣例輸入
4 1 1 1 2 1 1 1 -2
樣例輸出
x1=-0.125+0.484i x2=-0.125-0.484i x1=x2=-1.000 x1=1.000 x2=-2.000
#include<stdio.h> #include<math.h> void d(float ,float); void z(float ,float); void x(float ,float); float x1,x2,p,q,D; void main() { float a,b,c; while(scanf("%f%f%f",&a,&b,&c)!=EOF) { D=b*b-4*a*c; if(D>0) { d(a,b); printf("x1=%.3f x2=%.3f\n",x1,x2); } else { if(D==0) { z(a,b); printf("x1=x2=%.3f\n",x1,x2); } else { x(a,b); printf("x1=%.3f+%.3fi x2=%.3f-%.3fi\n",p,q,p,q); } } } } void d(float a,float b) { x1=(-b+sqrt(D))/(2*a); x2=(-b-sqrt(D))/(2*a); } void z(float a,float b) { x1=x2=-(b)/(2*a); } void x(float a,float b) { p=-(b)/(2*a); q=sqrt(-D)/(2*a); }