如何用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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP