#include #include /* 関数sqrtを参照するために、math.hをincludeしているので、 コンパイル時には-lmオプションを指定する必要がある。 */ int main(void) { /* 変数を宣言する。 */ float a, b, c, d, x1, x2; /* 入力を求めるメッセージを標準出力に書き出す。 */ printf( "%s\n", "a x^2 + b x + c = 0:" ); printf( "%s\n", "a, b, c?" ); /* 関数scanfで値を読みこむ。 */ scanf( "%f,%f,%f", &a, &b, &c ); /* 判別式(根号の中身)を計算する。 */ d = b * b - 4. * a * c; /* ここからif文が始まる。 (...)の中に書かれた条件を満たす場合だけ {...}の中に書かれた命令を実行する。 ここでは、判別式Dの値が0以上の場合に限って、 二次方程式の解を計算する。 if文の条件の指定の中で、"=="は等しい、"!="は等しくない、 ">"は大きい、"<"は小さい、 ">="は以上、"<="は以下という意味である。 */ if( d >= 0. ) { /* 二次方程式の2つの解を計算する。 関数sqrtで平方根を求めている。 */ x1 = ( - b - sqrt( d ) ) / ( 2. * a ); x2 = ( - b + sqrt( d ) ) / ( 2. * a ); /* 結果を標準出力に書き出す。 この関数printfもif文の中にあるので、 判別式Dが負で方程式に実数解が存在しない場合には、 このプログラムでは何も出力されない。 */ printf( "%s%f%s%f\n", "x = ", x1, ", ", x2 ); /* ここでif文が終了する。 */ } return 0; }