1192 C言語実験——一元二次方程式II

1287 ワード

タイトルの説明
一元の二次方程式axを求めます
2+bx+c=0の解.a,b,cは任意の実数である.
入力
入力データにはa b cの値を含む行がある.
しゅつりょく
方程式のルートx 1とx 2を以下の形式で出力します.x 1とx 2の間にスペースがあります.
x1 x2 
(1)x 1とx 2が実根であればx 1>=x 2で出力する.
(2)式が共役複素根である場合、x 1=m+ni、x 2=m−niであり、ここでn>0である.
 
ここで、x 1,x 2,m,nはいずれも2桁の小数を保持する.
サンプル入力
1 2 3

サンプル出力
-1.00+1.41i -1.00-1.41i
 
   
 
   
 
   
 
   
 
   
#include
#include
int main()
{
	double a,b,c,d,x1,x2,r,f;
	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  {             r=-b/(2*a);               f=sqrt(-d)/(2*a);     printf("%.2lf+%.2lfi ",r,f); printf("%.2lf-%.2lfi
",r,f); } return 0; }