如何用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

更新於:2023年9月1日

13.3萬+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告