题目描述 建立一个求一元二次方程解的类(a*x^2+b*x+c=0),输入系数a,b,c 的值后打印出 这个方程的解。 输入 输入第一行为样例数m,接下来m行每行3个整数a、b、c。 输出 输出m行,要求格式如下:若无解则输出-1,若有单解则输出x=..,若有两解则输出x1=...,x2=...,
时间: 2024-03-15 13:44:04 浏览: 175
好的,我可以帮您解决这个问题。以下是一个 C++ 程序的示例代码,可以实现求解一元二次方程。
```c++
#include <iostream>
#include <cmath>
using namespace std;
class QuadraticEquation
{
private:
double a, b, c;
public:
QuadraticEquation(double _a, double _b, double _c)
{
a = _a;
b = _b;
c = _c;
}
void solve()
{
double delta = b * b - 4 * a * c;
if (delta < 0)
{
cout << -1 << endl; // 无解
}
else if (delta == 0)
{
double x = -b / (2 * a);
cout << "x=" << x << endl; // 有单解
}
else
{
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
cout << "x1=" << x1 << ",x2=" << x2 << endl; // 有两解
}
}
};
int main()
{
int m;
cin >> m;
while (m--)
{
double a, b, c;
cin >> a >> b >> c;
QuadraticEquation qe(a, b, c);
qe.solve();
}
return 0;
}
```
这个程序中,定义了一个 `QuadraticEquation` 类用来求解一元二次方程。在类的构造函数中,输入系数 `a`、`b`、`c` 的值,然后在 `solve()` 函数中计算方程的根。如果判别式 `delta` 小于 0,则无解;如果等于 0,则有单解;如果大于 0,则有两解。最后输出结果。
主函数中,首先输入样例数 `m`,然后循环输入 `a`、`b`、`c` 的值,创建 `QuadraticEquation` 对象并调用 `solve()` 函数求解方程,并输出结果。
阅读全文