```cpp
include include using namespace std; int main() { float a, b, c, discriminant, x1, x2; cout << "请输入a, b和c的值:" << endl; cin >> a >> b >> c; discriminant = b * b - 4 * a * c; if (a == 0) { if (b == 0) { cout << "方程无解" << endl; } else { cout << "方程有一根为 -c/b" << endl; } } else if (discriminant > 0) { x1 = (-b + sqrt(discriminant)) / (2 * a); x2 = (-b - sqrt(discriminant)) / (2 * a); cout << "方程有两个不同的根:x1 = " << x1 << " 和 x2 = " << x2 << endl; } else if (discriminant == 0) { x1 = -b / (2 * a); cout << "方程有两个相同的根:x1 = x2 = " << x1 << endl; } else { cout << "方程无实数解" << endl; } return 0; } ``` 代码说明:输入部分 :程序首先提示用户输入a, b, c的值,并使用`cin`进行读取。
判别式计算:
计算判别式`discriminant = b^2 - 4ac`。
特殊情况处理
如果`a = 0`且`b = 0`,则方程无解。
如果`a = 0`且`b != 0`,则方程有一根为`-c/b`。
根的计算
如果判别式`discriminant > 0`,则方程有两个不同的实数根,分别为`x1 = (-b + sqrt(discriminant)) / (2a)`和`x2 = (-b - sqrt(discriminant)) / (2a)`。
如果判别式`discriminant == 0`,则方程有两个相同的实数根,即`x1 = x2 = -b / (2a)`。
如果判别式`discriminant < 0`,则方程无实数解。
编译和运行:
将上述代码保存为一个C++文件(例如`quadratic_solver.cpp`),然后使用C++编译器(如g++)进行编译和运行。例如:
```sh
g++ quadratic_solver.cpp -o quadratic_solver
./quadratic_solver
```
程序将提示用户输入a, b, c的值,并输出方程的根。