如何解二次方程 ax^2 + bx + c = 0?请分别讨论:①当该方程有两个不相等的实数根时的情况;②当方程有两个相等实数根时的条件和求解步骤。用c语言写
时间: 2024-11-15 15:30:59 浏览: 37
解二次方程 \(ax^2 + bx + c = 0\) 的过程通常涉及二次公式法,也称为韦达定理。我们先来看两种情况:
1. **两个不相等的实数根**:
当判别式 \(D = b^2 - 4ac > 0\) 时,有具体的解法。首先计算判别式的值,然后计算两根 \(x_1\) 和 \(x_2\):
\[ x_1 = \frac{-b + \sqrt{D}}{2a}, \quad x_2 = \frac{-b - \sqrt{D}}{2a} \]
使用C语言编写这部分可能会这样:
```c
double a, b, c;
if (b * b - 4 * a * c > 0) {
double discriminant = b * b - 4 * a * c;
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("两个不相等的实数根: %.2lf and %.2lf\n", root1, root2);
}
```
2. **两个相等的实数根**:
如果 \(D = b^2 - 4ac = 0\),则方程有一个重根,即一个根等于另一个根。此时,根的表达式简化为:
\[ x_1 = x_2 = -\frac{b}{2a} \]
C语言代码示例:
```c
if (b * b - 4 * a * c == 0) {
double root = -b / (2 * a);
printf("两个相等的实数根: %.2lf\n", root);
}
```
阅读全文