題目描述
一元二次方程的標準形式為ax2+bx+c=0(a≠0),其中a、b、c為常數。求解一元二次方程的根x時有三種情況,分別為(記δ=b2-4ac):
δ>0,有兩個不等的實根;
δ=0,有兩個相同的實根;
δ<0,有兩個共軛的虛根。輸入
輸入為多行,每行為一元二次方程的三個常數a,b,c,在double型別範圍之內。當輸入的a為0時,表示輸入結束。
輸出每行輸入的樣例對應三行輸出。
第一行輸出為樣例的編號。
第二行輸出為所輸入常數a,b,c對應的一元二次方程的標準形式,要求輸出滿足a>0。
第三行輸出為所輸入方程的根,分為三種情況:
若方程滿足δ>0,即有兩不等實根x1、x2,則按順序(先小後大)輸出這兩個實根。
若方程滿足δ=0,即有兩相同實根x,則輸出乙個實根。
若方程滿足δ<0,即有兩共軛的虛根x1、x2,則輸出兩個虛根,虛部符號為正的(即u+vi形式)先輸出,虛部符號為負的(x-yi形式)後輸出。
以上輸出均不輸出數學上無意義或可省略的的符號,所有數值最多保留6位有效數字。每個樣例之後都有乙個空行分隔。
樣例輸入
121
-12-
1-52
-0.2-3
2030
12244
0
樣例輸出
case1:
x^2+
2x+1
=0only
onereal
root:-
1case2:
x^2-
2x+1
=0only
onereal
root:1
case3:
5x^2
-2x+
0.2=
0only
onereal
root
:0.2
case4:
3x^2
-2x=
0two
real
roots:0
,0.666667
case5:
3x^2
+12=0
twoimaginary
roots:2
i,-2
icase6:
2x^2
+4x+
4=0two
imaginary
roots:-
1+i,
-1-i
#include
<
stdio.h
>
#include
<
math.h
>
intmain()
printf
("case %d :\n",i
);i+
+;if(
a==1
)printf
("x^2 ");
else
printf
("%gx^2 ",a
);if(
b==0
);elseif(
b==1
)printf
("+ x ");
elseif(
b==-
1)printf
("- x ");
else
printf
("%c %gx ",b
>0?
'+':
'-',
fabs(b
));if
(c==
0);else
printf
("%c %g ",c
>0?
'+':
'-',
fabs(c
));printf
("= 0\n");
m=b*
b-4*a
*c;d
=sqrt(m
);if(
m>
1e-12
)elseif(
fabs(m
)<
1e-12
)else
else
printf
(", ");
if(t!
=0)printf
("%g",t
);if(
s!=1
)printf
("-%gi\n",s
);else
printf
("-i\n");
}printf
("\n");
}}return0;
}
求一元二次方程的根
求一元二次方程的根 總時間限制 1000ms 記憶體限制 65536kb 描述 利用公式x1 b sqrt b b 4 a c 2 a x2 b sqrt b b 4 a c 2 a 求一元二次方程ax2 bx c 0的根,其中a不等於0。輸入 輸入一行,包含三個浮點數a,b,c 它們之間以乙個空格...
求一元二次方程的根
描述 利用公式x1 b sqrt bb 4ac 2a x2 b sqrt bb 4ac 2a 求一元二次方程ax2 bx c 0的根,其中a不等於0。輸入輸入一行,包含三個浮點數a,b,c 它們之間以乙個空格分開 分別表示方程ax2 bx c 0的係數。輸出輸出一行,表示方程的解。若b2 4 a c...
求一元二次方程的根
從鍵盤上任意輸入 a,b,c 的值,程式設計計算並輸出一元二次方程 ax2 bx c 0 的根 當 a 0 時,輸出 not quadratic equation with one unknown 當 a 0 時,分 b2 4ac 0 b2 4ac 0 b2 4ac 0 三種情況計算並輸出方程的根。...