ps:解二次方程,wrong了一次,x1和x2木有判断大小!!!
(1)若b^2-4ac<0,无实数根,有两个复数根:x1=[-b+i√(4ac-b^2)]/(2a) , x2=[-b-i√(4ac-b^2)]/(2a);
(2)若b^2-4ac=0,有两个相等实根: x1=x2=-b/(2a);
(3)若b^2-4ac>0,有两个不等实根: x1=[-b+√(b^2-4ac)]/(2a) ,x2=[-b-√(b^2-4ac)]/(2a) 。
#include<stdio.h> #include<math.h> int main() { int t; int a,b,c; double x1,x2,x,temp; scanf("%d",&t); while(t--) { scanf("%d%d%d",&a,&b,&c); x=b*b-4*a*c; if(x<0) printf("NO\n"); else if(x==0) { x1=-1.0*b/(2*a); printf("%.2f\n",x1); } else if(x>0) { x1=(-1.0*b-sqrt(x))/(2*a); x2=(-1.0*b+sqrt(x))/(2*a); if(x1>x2)// { temp=x1;x1=x2;x2=temp; } printf("%.2f %.2f\n",x1,x2); } } return 0; }