改良版プログラム
•23
double a, b, c, d, x1, x2;
printf("Please input a b c : ");
scanf("%lf %lf %lf", &a, &b, &c);
d = b * b - 4 * a * c; /* 判別式の計算 */
if(d >= 0){ /* 判別式が正のとき、解を計算 */
if(b >= 0) x1 = -(b + sqrt(d)) / (2.0 * a);
else x1 = (-b + sqrt(d)) / (2.0 * a);
x2 = c / (a * x1);
printf("x1 = %17.10e (%17.10e)\n",x1,a*x1*x1+b*x1+c);
printf("x2 = %17.10e (%17.10e)\n",x2,a*x2*x2+b*x2+c);
} else{ /* 判別式が負のとき、虚数解と表示 */
printf("x1 = 虚数解\n");
printf("x2 = 虚数解\n");
}
解と係数の関係より