目录
题目
源码
结果示例
题目
求一元二次方程式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;
}