在C语言中,求解一元二次方程 \(ax^2 + bx + c = 0\) 的根可以通过以下步骤实现:
计算判别式 :首先计算判别式 \(d = b^2 - 4ac\)。判断判别式的值
如果 \(d > 0\),方程有两个不相等的实根。
如果 \(d = 0\),方程有两个相等的实根(即一个实根)。
如果 \(d < 0\),方程无实根。
计算根
如果 \(d \geq 0\),使用公式 \(x1 = \frac{-b + \sqrt{d}}{2a}\) 和 \(x2 = \frac{-b - \sqrt{d}}{2a}\) 计算根。
```c
include include int main() { double a, b, c, d, x1, x2; printf("请输入一元二次方程的三个系数a, b, c:\n"); scanf("%lf %lf %lf", &a, &b, &c); d = b * b - 4 * a * c; if (d > 0) { x1 = (-b + sqrt(d)) / (2 * a); x2 = (-b - sqrt(d)) / (2 * a); printf("方程有两个不相等的实根: x1 = %.2lf, x2 = %.2lf\n", x1, x2); } else if (d == 0) { x1 = x2 = -b / (2 * a); printf("方程有两个相等的实根: x1 = x2 = %.2lf\n", x1); } else { printf("方程无实根\n"); } return 0; } ``` 代码解释: 程序首先提示用户输入一元二次方程的三个系数 \(a\)、\(b\) 和 \(c\)。 计算判别式 \(d = b^2 - 4ac\)。 如果 \(d > 0\),计算两个不相等的实根 \(x1\) 和 \(x2\)。 如果 \(d = 0\),计算两个相等的实根 \(x1\) 和 \(x2\)。 如果 \(d < 0\),输出方程无实根。 输出结果: 根据判别式的值,输出相应的根。 这个程序可以处理一元二次方程的求解,并且能够处理实数和复数根的情况(如果需要处理复数根,可以使用复数库如 `complex.h`)。输入系数:
计算判别式:
判断判别式