GPT答: |
7i24.cn
|
程序如下:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c;
cout << "请输入一元二次方程的系数:";
cin >> a >> b >> c;
try {
if (a == 0) {
throw "a不能为0!";
}
double delta = b * b - 4 * a * c;
if (delta < 0) {
throw "方程无实根!";
}
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
cout << "方程的实根为:" << x1 << ", " << x2 << endl;
} catch(const char* msg) {
cerr << msg << endl;
}
return 0;
}
```
分析:
该程序通过输入一元二次方程的系数,计算并输出其实根。在计算过程中,可能会出现两种异常情况:a等于0和delta小于0。对于这两种情况,我们使用了throw语句抛出一个字符串类型的异常信息,并在catch块中捕获并输出该信息。
如果输入正确,则正常进行计算并输出结果;如果输入不正确,则会抛出相应的异常信息。例如,当用户输入a=0时,程序会抛出“a不能为0!”这个字符串类型的异常信息,并在catch块中捕获并输出该信息。同样地,在delta小于零时也会抛出“方程无实根!”这个异常信息。
|