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桁の小数を保持する.
サンプル入力
サンプル出力
一元の二次方程式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; }