在C语言中,可以使用虚根公式来求解二次方程的虚根。虚根公式如下:
\[ x_1 = \frac{-b + \sqrt{b^2 - 4ac}}{2a} \]
\[ x_2 = \frac{-b - \sqrt{b^2 - 4ac}}{2a} \]
其中,\( a \)、\( b \)、\( c \) 分别是二次方程的系数。在计算虚根时,需要使用 `math.h` 头文件中的 `sqrt()` 函数来计算平方根。需要注意的是,如果判别式 \( b^2 - 4ac \) 小于0,则说明二次方程没有实根,只有虚根。在输出结果时,可以使用 `printf()` 函数来显示虚根的值。
```c
include include int main() { float a, b, c, t, p, q, x1, x2; printf("请输入a, b, c\n"); scanf("%f %f %f", &a, &b, &c); if (a == 0) { printf("不是一元二次方程\n"); } else { t = b * b - 4 * a * c; if (t >= 0) { /* 求实根 */ x1 = (-b + sqrt(t)) / (2 * a); x2 = (-b - sqrt(t)) / (2 * a); printf("有实根为\n"); printf("x1=%f\nx2=%f\n", x1, x2); } else { p = (-b) / (2 * a); /* 求实部 */ q = sqrt(-t) / (2 * a); /* 求虚部 */ printf("有虚根为\n"); printf("x1=%f+%fi\n", p, q); printf("x2=%f-%fi\n", p, q); } } return 0; } ``` 代码解释:输入系数 :程序首先提示用户输入二次方程的系数 \( a \)、\( b \) 和 \( c \)。
判别式计算:
计算判别式 \( t = b^2 - 4ac \)。
判断实根或虚根
如果 \( t \geq 0 \),则方程有两个实根,程序计算并输出这两个实根。
如果 \( t < 0 \),则方程有两个虚根,程序计算并输出这两个虚根。虚根的实部为 \( p = -\frac{b}{2a} \),虚部为 \( q = \frac{\sqrt{-t}}{2a} \)。
输出格式:
实根直接输出。
虚根以 \( x1 = p + qi \) 和 \( x2 = p - qi \) 的形式输出,其中 \( i \) 是虚数单位。
通过这种方式,程序能够正确地处理一元二次方程的实根和虚根,并输出相应的结果。