「アルゴリズムに関する注意事項」セクション2.3-C / C ++クイックスタート->構造例の選択4-11つの変数で2次方程式のルートを見つける

例4-1二次方程式の根を見つける

タイトルの説明
二次方程式ax2 + bx + c = 0のルートを見つけます。3つの係数a、b、およびcはキーボードによって入力され、aを0にすることはできませんが、b2-4ac> 0は保証されません。
プログラムに含まれる変数はdouble型です。スペースで区切られた1つの要素の2次方程式の3つの係数を
入力
し、2倍精度のダブルタイプを
出力し
ます。2つのルートは次のように分岐によって出力されます(最後の新しい行に注意してください)
。r1=最初のルート
r2 = 2番目のルート
結果が出力されるとき、幅は小数点以下2桁を含む7桁。
方程式に実根がない場合は、次のように情報の行を出力します(最後の新しい行に注意してください):
実根なし!
サンプル入力コピー
1 2 3
サンプル出力コピー
実根なし!

#include <stdio.h>
#include <math.h>

int main() {
    
    
    double a, b, c, r1, r2;
    scanf("%lf%lf%lf", &a, &b, &c);
    double discriminant;
    discriminant = b * b - 4 * a * c;
    if (a) {
    
    
        if (discriminant >= 0) {
    
    
            r1 = (-b + sqrt(discriminant)) / (2 * a);
            r2 = (-b - sqrt(discriminant)) / (2 * a);
            printf("r1=%7.2f\nr2=%7.2f", r1, r2);
        } else {
    
    
            printf("No real roots!");
        }
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/DoMoreSpeakLess/article/details/109733127