目录
题目
源码
结果示例
题目
求一元二次方程式ax^2+bx+c=0的实根,如果方程没有实根,则输入有关警告信息。要求:建立一元二次方程类,利用异常技术处理。
源码
#include <iostream>
#include <cmath>
using namespace std;
class Equation
{
private:
double a, b, c;
public:
Equation(double a, double b, double c) : a(a), b(b), c(c) {}
void solve()
{
double panbieshi = b * b - 4 * a * c;
if (panbieshi < 0)
{
throw(1);
}
else if (panbieshi == 0)
{
double root = -b / (2 * a);
cout << "该方程有一个实根: " << root << endl;
}
else
{
double root1 = (-b + sqrt(panbieshi)) / (2 * a);
double root2 = (-b - sqrt(panbieshi)) / (2 * a);
cout << "该方程有两个实根: " << root1 << " 和 " << root2 << endl;
}
}
};
int main()
{
double a, b, c;
cout << "请输入一元二次方程中a、b、c的值(ax^2 + bx + c = 0): \n";
cin >> a >> b >> c;
try
{
Equation eq(a, b, c);
eq.solve();
}
catch (const int i)
{
cout << "该一元二次方程没有实根,无法求实根!" << endl;
}
return 0;
}