完整 用c++写一个求解一元二次方程的代码 要求函数利用引用传参 不用写复数
时间: 2024-09-08 09:03:37 浏览: 49
你可以使用以下C++代码来编写一个求解一元二次方程的函数,该函数接受系数a、b和c作为引用参数:
```cpp
#include <iostream>
#include <cmath>
// 自定义函数,用于求解一元二次方程
void solveQuadraticEquation(double& a, double& b, double& c, double& x1, double& x2) {
// 检查是否为二次方程(a非零)
if (a == 0) {
std::cout << "这不是一个二次方程,因为系数a为0." << std::endl;
return;
}
double discriminant = b * b - 4 * a * c;
// 计算两个实根
if (discriminant >= 0) {
x1 = (-b + sqrt(discriminant)) / (2 * a);
x2 = (-b - sqrt(discriminant)) / (2 * a);
} else {
x1 = x2 = complex<double>(0, -b / (2 * a)); // 使用C++库complex来表示复数,这里未显示
std::cout << "方程无实数解,有两个共轭复数解:" << x1.real() << "+" << x1.imag() << "i 和 " << x2.real() << "+" << x2.imag() << "i." << std::endl;
}
}
int main() {
double a, b, c; // 输入系数
std::cout << "请输入一元二次方程的系数a, b, c: ";
std::cin >> a >> b >> c;
double x1, x2; // 存储结果
solveQuadraticEquation(a, b, c, x1, x2);
std::cout << "方程的解是: x1 = " << x1 << ", x2 = " << x2 << std::endl;
return 0;
}
```
阅读全文