用c++求解一元二次方程ax*+bx+c=0,由键盘输入系数,a,b,c:2,18,16输出方程的根。
时间: 2024-09-20 14:08:56 浏览: 38
在 C++ 中,我们可以使用公式法来计算一元二次方程 \( ax^2 + bx + c = 0 \) 的根,其中 \( a \neq 0 \)。首先,我们需要检查判别式 \( D = b^2 - 4ac \),然后根据其值来确定根的情况:
1. 如果 \( D > 0 \),则有两个不相等的实数根。
2. 如果 \( D = 0 \),则有两个相等的实数根。
3. 如果 \( D < 0 \),则无实数根,但有复数根。
以下是简单的 C++ 代码实现:
```cpp
#include <iostream>
#include <cmath>
// 定义求解二次方程的函数
void solveQuadraticEquation(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);
std::cout << "两个不相等的实数根: " << root1 << ", " << root2 << std::endl;
} else if (discriminant == 0) {
double root = -b / (2 * a);
std::cout << "一个实数根: " << root << std::endl;
} else {
double realPart = -b / (2 * a), imaginaryPart = std::sqrt(-discriminant) / (2 * a);
std::cout << "两个共轭复数根: " << realPart << " ± " << imaginaryPart << "i" << std::endl;
}
}
int main() {
double a = 2, b = 18, c = 16;
solveQuadraticEquation(a, b, c);
return 0;
}
```
当你运行这个程序,并输入给定的系数 \( a = 2 \), \( b = 18 \), \( c = 16 \),它会计算并输出方程的根。注意,如果系数是从用户那里获取的,你需要修改 `main` 函数中对应的数值。
阅读全文