C语言实验——一元二次方程Ⅱ

来源:互联网 发布:网易邮箱数据库 51.3g 编辑:程序博客网 时间:2024/06/06 15:03

Description

求一元二次方程ax2+bx+c=0的解。a,b,c为任意实数。

Input

输入数据有一行,包括a b c的值。

Output

按以下格式输出方程的根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位小数。

Sample Input

1 2 3

Sample Output

-1.00+1.41i -1.00-1.41i
  1. #include<stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5.     doublea,b,c,d,e,f,t,x1,x2;
  6.     scanf("%lf%lf %lf",&a,&b,&c);
  7.     d=b*b-4*a*c;
  8.     e=-b/(2*a);
  9.     f=sqrt(fabs(d))/(2*a);
  10.     if(d>=0)
  11.     {
  12.         x1=e+f;
  13.         x2=e-f;
  14.         if(x1>=x2)
  15.             printf("%.2f%.2f",x1,x2);
  16.         else
  17.         {
  18.             t=x1;
  19.             x1=x2;
  20.             x2=t;
  21.             printf("%.2f%.2f\n",x1,x2);
  22.         }
  23.     }
  24.     else
  25.         printf("%.2f+%.2fi%.2f-%.2fi\n",e,fabs(f),e,fabs(f));
  26.  
  27.     return0;
  28. }
  29.  
0 0
原创粉丝点击