如何用C語言編寫程式求解二次方程的根?
問題
應用軟體開發方法來解決C語言中的任何問題。
解決方案
- 求解二次方程 ax2+bx+c 的根。
- 給定的二次方程將有兩個根。
分析
輸入 − a、b、c 值
輸出 − r1、r2 值
步驟
$r_{1}=\frac{-b+\sqrt{b^2-4ac}}{2a}$
$r_{2}=\frac{-b-\sqrt{b^2-4ac}}{2a}$
設計(演算法)
- 開始
- 讀取 a、b、c 值
- 計算 d = b2 - 4ac
- 如果 d > 0,則
- r1 = (-b + sqrt(d)) / (2*a)
- r2 = (-b - sqrt(d)) / (2*a)
- 否則,如果 d = 0,則
- 計算 r1 = -b/(2a), r2 = -b/(2a)
- 列印 r1、r2 值
- 否則,如果 d < 0,則列印根是虛數
- 結束
程式碼實現
# include<stdio.h> # include<math.h> int main () { float a,b,c,r1,r2,d; printf ("Enter the values of a b c: "); scanf (" %f %f %f", &a, &b, &c); d= b*b - 4*a*c; if (d>0) { r1 = -b+sqrt (d) / (2*a); r2 = -b-sqrt (d) / (2*a); printf ("The real roots = %f %f", r1, r2); } else if (d==0) { r1 = -b/(2*a); r2 = -b/(2*a); printf ("Roots are equal =%f %f", r1, r2); } else printf("Roots are imaginary"); return 0; }
測試
Case 1:
Enter the values of a b c: 1 4 3
The real roots = -3.000000 -5.000000
Case 2:
Enter the values of a b c: 1 2 1
Roots are equal =-1.000000 -1.000000
Case 3:
Enter the values of a b c: 1 1 4
Roots are imaginary
廣告