c++一元二次方程求解
时间: 2024-11-06 13:11:23 浏览: 28
用c++编写的一元二次方程的解
在C++中,你可以使用公式法来求解一元二次方程,比如标准形式ax² + bx + c = 0。这个过程通常涉及到计算判别式D = b² - 4ac,然后基于判别式的值来确定根的情况:
1. 如果D > 0,有两个实数根:x₁ = (-b + √D) / (2a),x₂ = (-b - √D) / (2a)。
2. 如果D = 0,有一个重根:x = -b / (2a)。
3. 如果D < 0,有两个复数根(共轭复数对)。
下面是一个简单的示例函数,展示了如何使用C++实现这个功能:
```cpp
#include <cmath>
#include <iostream>
// 定义一个函数用于计算一元二次方程的根
void solveQuadraticEquation(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
double x1 = (-b + std::sqrt(discriminant)) / (2 * a);
double x2 = (-b - std::sqrt(discriminant)) / (2 * a);
std::cout << "有两个不同的实根:x1 = " << x1 << ", x2 = " << x2 << std::endl;
} else if (discriminant == 0) {
double root = -b / (2 * a);
std::cout << "有唯一实根:x = " << root << std::endl;
} else {
double realPart = -b / (2 * a);
double imaginaryPart = std::sqrt(-discriminant) / (2 * a);
std::cout << "有两个复数根:x1 = " << realPart << "+" << imaginaryPart << "i, x2 = " << realPart << "-" << imaginaryPart << "i" << std::endl;
}
}
int main() {
// 示例:求解方程x² + 5x + 6 = 0
double a = 1, b = 5, c = 6;
solveQuadraticEquation(a, b, c);
return 0;
}
```
阅读全文