单项选择题
从键盘任意输入a,b,c的值,编程计算并输出下面一元二次方程的根
当a=0时,输出“该方程不是一元二次方程”,当a≠0时,分三种情况计算并输出方程的根,即:
, 两个不相等的实根,分别为:x1 = p+q,x2 = p-q
, 两个相等的实根为:x1 = x2 =p
, 一对共轭复根,分别为:x1 = p+qi,x2 = p-qi
按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
#include
#include
#define EPS 1e-6
int main()
{
float a, b, c, disc, p, q;
printf("Please enter the coefficients a,b,c:");
scanf("%f,%f,%f", &a, &b, &c);
if (________) /* a=0时,输出“不是二次方程” */
{
printf("It is not a quadratic equation!");
exit(0);
}
disc = b * b - 4 * a * c; /* 计算判别式 */
p = - b / (2 * a);
q = sqrt(fabs(disc)) / (2 * a);
if (___________) /* 判别式等于0时,输出两相等实根 */
{
printf("x1 = x2 = %.2f", p);
}
else
{
if (__________) /* 判别式大于0时,输出两不等实根 */
{
printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
}
else /* 判别式小于0时,输出两共轭复根 */
{
printf("x1 = %.2f+%.2fi, ", p, q);
printf("x2 = %.2f-%.2fi", p, q);
}
}
return 0;
}
A.第11行: fabs(a) = 0
第20行: fabs(disc) <= EPS
第26行: disc >= 0
B.第11行: fabs(a) <= EPS
第20行: fabs(disc) <= EPS
第26行: disc > EPS
C.第11行: fabs(a) = 0
第20行: fabs(disc) = 0
第26行: disc > EPS
D.第11行: fabs(a) <= EPS
第20行: fabs(disc) = 0
第26行: disc >= EPS