”建立一个求一元二次方程解的类(a*x^2+b*x+c=0),输入系数a,b,c 的值后打印出 这个方程的解。输入第一行为样例数m,接下来m行每行3个整数a、b、c。输出m行,要求格式如下:若无解则输出-1,若有单解则输出x=..,若有两解则输出x1=...,x2=...“以上内容用c++编写一段代码
时间: 2023-06-15 11:06:05 浏览: 98
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class QuadraticEquation {
private:
double a, b, c;
public:
QuadraticEquation(double aa, double bb, double cc) {
a = aa;
b = bb;
c = cc;
}
void solve() {
double delta = b * b - 4 * a * c;
if (delta < 0) {
cout << "-1" << endl;
} else if (delta == 0) {
double x = -b / (2 * a);
printf("x=%.2f\n", x);
} else {
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("x1=%.2f,x2=%.2f\n", x1, x2);
}
}
};
int main() {
int m;
cin >> m;
while (m--) {
double a, b, c;
cin >> a >> b >> c;
QuadraticEquation equation(a, b, c);
equation.solve();
}
return 0;
}
```
代码思路:
首先定义一个类 `QuadraticEquation`,并在其中定义成员变量 `a`、`b`、`c` 表示一元二次方程的系数,成员函数 `solve()` 表示求解一元二次方程的根。
在 `solve()` 函数中,首先计算出判别式 `delta`,如果 `delta < 0`,则方程无实数根,输出 `-1`;如果 `delta = 0`,则方程有一个实数根,输出 `x=..`;否则,方程有两个实数根,输出 `x1=...,x2=...`。
在 `main` 函数中,读入样例数 `m`,然后循环读入每个样例的系数,创建 `QuadraticEquation` 类的对象,并调用 `solve()` 函数求解方程的根。
阅读全文