首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

C語言求解一元二次方程:完整判別式分支與複數輸出

     編輯:關於C

代碼

 0) {         // 兩實根
        double x1 = (-b + sqrt(disc)) / (2*a);
        double x2 = (-b - sqrt(disc)) / (2*a);
        printf("x1 = %f\nx2 = %f\n", x1, x2);
    } else {                       // 複根
        double re = -b/(2*a);
        double im = sqrt(-disc)/(2*a);
        printf("x1 = %f + %fi\nx2 = %f - %fi\n", re, im, re, im);
    }
    return 0;
}

判別式分支詳解

條件數學意義輸出
a ≈ 0非二次方程線性求解或提示
Δ ≈ 0重根單一實根
Δ > 0兩相異實根兩實數
Δ < 0共軛複根實部 ± 虛部 i

工程細節

  • 用 EPS 比較浮點數,避免精度誤差導致分支錯誤。
  • sqrt 需 math.h 且編譯加 -lm。
  • 複數輸出格式 %f + %fi 符合數學慣例。

總結

一元二次方程求解是「條件分支 + 數學庫 + 浮點比較」的綜合練習。掌握判別式邏輯、EPS 比較、複數輸出,可擴展至高次多項式數值求根(牛頓法、伴隨矩陣法)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved