求一元二次方程ax^2+bx+C=0的根,a, b,c从键盘输入。(设a不等于0,delta(b*b-4*a*c)大于0)写个代码
时间: 2024-11-09 07:25:54 浏览: 5
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
当然,为了求解一元二次方程 \( ax^2 + bx + C = 0 \),我们需要使用二次公式。首先,我们需要计算判别式 \(\Delta = b^2 - 4ac\),如果 \(\Delta > 0\),那么方程有两个实数解;如果 \(\Delta = 0\),有一个实数解(重根);如果 \(\Delta < 0\),则有两个复数解。
以下是一个简单的C++程序,用于获取用户输入并计算并打印解:
```cpp
#include <iostream>
#include <cmath>
// 定义计算根的函数
void 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);
std::cout << "两个实数解: x1 = " << root1 << ", x2 = " << root2 << 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() {
double a, b, c;
std::cout << "请输入系数a: ";
std::cin >> a;
std::cout << "请输入系数b: ";
std::cin >> b;
std::cout << "请输入常数项c: ";
std::cin >> c;
calculateRoots(a, b, c);
return 0;
}
```
当你运行这个程序时,它会要求你输入a、b和c的值,然后根据这些值计算并显示方程的根。请注意,这段代码假设用户输入的a不为零,如果你需要处理这种情况,可以在计算之前添加对a是否为零的检查。
阅读全文