题目描述
求一元二次方程ax2+bx+c=0的解。a,b,c为任意实数。
输入
输入数据有一行,包括a b c的值。
输出
按以下格式输出方程的根x1和x2。x1和x2之间有一个空格。 x1 x2
(1)如果x1和x2为实根,则以x1>=x2输出。 (2)如果方程是共轭复根,x1=m+ni,x2=m-ni,其中n>0。 其中x1, x2,
m,n均保留2位小数。
样例输入
1 2 3
样例输出
-1.00+1.41i -1.00-1.41i
代码如下:
#include<stdio.h> #include<math.h> int main() { double a,b,c,d,x1,x2,z,m,n; scanf("%lf%lf%lf",&a,&b,&c); d=(b*b-4*a*c); if (d>=0) { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); if(x1>=x2) printf("%.2lf %.2lf",x1,x2); else printf("%.2lf %.2lf",x2,x1); } else { m=(-b)/(2*a); n=sqrt(-d)/(2*a); printf("%.2lf+%.2lfi %.2lf-%.2lfi",m,n,m,n); } return 0; }
-
C语言对数函数的表达
:下一篇 »