C++一元二次方程求根公式
时间: 2024-09-18 13:05:53 浏览: 74
在C++中,一元二次方程的求根公式通常用于解形如ax^2 + bx + c = 0的方程,其中a、b、c是常数,且a不等于0。根据求根公式,两个解x1和x2分别为:
\[ x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
如果你需要编写代码来计算这个,你可以创建一个函数,接收三个参数a、b和c,并使用数学库(如cmath)中的sqrt函数来计算平方根。下面是一个简单的示例:
```cpp
#include <iostream>
#include <cmath>
double calculateRoots(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
double root1 = (-b + std::sqrt(discriminant)) / (2 * a);
double root2 = (-b - std::sqrt(discriminant)) / (2 * a);
return {root1, root2};
} else if (discriminant == 0) {
return {-b / (2 * a)};
} else {
// 复数根,这里假设处理复数的逻辑已经实现
double realPart = -b / (2 * a);
double imaginaryPart = std::sqrt(-discriminant) / (2 * a);
return {realPart, imaginaryPart};
}
}
int main() {
double a, b, c;
std::cout << "请输入a, b, c的值:" << std::endl;
std::cin >> a >> b >> c;
std::array<double, 2> roots = calculateRoots(a, b, c);
if (roots.size() == 2) {
std::cout << "方程有两个实根:x1 = " << roots[0] << ", x2 = " << roots[1] << std::endl;
} else {
std::cout << "方程有一个实根:" << roots[0] << "(复数根)" << std::endl;
}
return 0;
}
```
阅读全文