求一元二次方程ax2+bx+c=0的根,其中a、b、c为任意实数。 提示(Hint):使用系统函数 sqrt(double x)求平方根,使用前需添加语句:#include <math.h>
时间: 2024-11-22 07:45:09 浏览: 29
解一元二次方程 ax^2 + bx + c = 0 的一般方法是使用公式法,也称为韦达定理(Vieta's formulas),该定理表明如果两个根为 α 和 β,则有以下关系:
α + β = -b / a (第一个根与第二个根之和)
α * β = c / a (两个根的乘积)
在编程中,特别是 C/C++ 中,可以编写一个函数来计算这两个根。首先,需要验证判别式 b^2 - 4ac 是否大于等于零,因为如果判别式小于零,那么原方程无实根。以下是示例代码:
```cpp
#include <iostream>
#include <cmath>
// 函数来计算一元二次方程的根
void quadraticRoots(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 << "根1: " << root1 << "\n";
std::cout << "根2: " << root2 << "\n";
} else {
std::cout << "方程无实根.\n";
}
}
int main() {
double a, b, c;
std::cout << "请输入一元二次方程的系数 a, b, c: ";
std::cin >> a >> b >> c;
quadraticRoots(a, b, c);
return 0;
}
```
当你运行这个程序并输入方程的系数时,它会计算并显示根,如果有实根的话。
阅读全文