求一元二次方程的根用三个函数c++
时间: 2024-10-24 20:03:08 浏览: 115
在C++中,求解一元二次方程可以使用数学库中的`cmath`或者自定义函数实现。这里我们使用`cmath`库中的函数举例:
如果你想要直接使用标准库函数,可以使用`sqrt()`函数计算平方根,并通过公式 `x = [-b ± sqrt(b^2 - 4ac)] / (2a)` 来找到两个解。下面是相应的代码片段:
```cpp
#include <iostream>
#include <cmath>
// 函数声明
double quadraticRoots(double a, double b, double c);
int main() {
double a, b, c;
std::cout << "请输入一元二次方程的系数 a, b, c: ";
std::cin >> a >> b >> c;
if (a == 0) {
std::cerr << "错误!一元二次方程需要非零的 'a' 系数." << std::endl;
return 0;
}
double root1 = quadraticRoots(a, b, c);
double root2 = quadraticRoots(a, b, c); // 由于有两个解,调用一次即可
std::cout << "方程的解是:" << root1 << " 和 " << root2 << std::endl;
return 0;
}
// 自定义函数求解一元二次方程
double quadraticRoots(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
return (-b + std::sqrt(discriminant)) / (2 * a), (-b - std::sqrt(discriminant)) / (2 * a);
} else if (discriminant == 0) {
return -b / (2 * a);
} else { // complex roots (not in real numbers)
double realPart = -b / (2 * a);
double imaginaryPart = std::sqrt(-discriminant) / (2 * a);
return realPart, realPart + imaginaryPart*I; // I代表虚数单位
}
}
```
阅读全文