c++语言一元二次方程求解,使用printf输出并保留两位小数,无实根输出结果用0代替
时间: 2024-10-13 19:16:24 浏览: 47
二元二次方程求解_;方程求解;_C++_
5星 · 资源好评率100%
在C++中,解决一元二次方程的一般形式是通过计算判别式(b² - 4ac),如果判别式大于零,有两个实根;等于零,有一个重根;小于零,无实根。我们可以使用公式 `x = [-b ± sqrt(b² - 4ac)] / (2a)` 来找到根。下面是一个简单的示例程序,它接受用户输入的系数a、b和c,并使用`std::cout`代替`printf`输出结果,因为C++标准库提供的`std::cout`默认会自动控制精度,我们不需要额外设置:
```cpp
#include <iostream>
#include <cmath> // 包含数学函数库sqrt()
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 << "两个实根: " << fixed << setprecision(2) << root1 << " 和 " << root2 << std::endl;
} else if (discriminant == 0) {
double root = -b / (2 * a);
std::cout << "一个重根: " << fixed << setprecision(2) << root << std::endl;
} else {
std::cout << "无实根,结果为0." << std::endl;
}
}
int main() {
double a, b, c;
std::cout << "请输入一元二次方程的系数a, b, c: ";
std::cin >> a >> b >> c;
solveQuadraticEquation(a, b, c);
return 0;
}
```
阅读全文