📄 p13_2.cpp
字号:
/****************************************************
* 程序名:p13_2.cpp *
* 功能: 带异常处理嵌套的求二元一次方程的解 *
****************************************************/
# include <cmath>
# include <iostream>
using namespace std;
struct Res {
float x1,x2;
};
Res resolution(int a,int b,int c) throw(int);
void main() {
int a,b,c;
Res r;
cout<<"Input a, b,c :";
cin>>a>>b>>c;
try //异常侦测区
{
r=resolution(a,b,c);
cout<<"x1="<<r.x1<<"\tx2="<<r.x2<<endl;
}
catch (int)
{
cerr<<"Sqrt Negative Exception"<<endl;
}
catch(...)
{
cerr<<"unexpected or rethrow exception!"<<endl;
}
}
float quotient(int a,int b) throw(char *)
{
if (b==0) //捕获异常
throw("Divide 0 !");
else
return a/(float)b;
}
Res resolution(int a,int b,int c)
{
Res tmpr;
try
{
if(a==0&&b!=0)
{
tmpr.x1=tmpr.x2=quotient(c,b);
return tmpr;
}
if(b*b-4*a*c<0)
throw (b);
tmpr.x1=quotient(-b+sqrt(b*b-4.0*a*c),2*a);
tmpr.x2=quotient(-b-sqrt(b*b-4.0*a*c),2*a);
return tmpr;
}
catch(char *ErrS)
{
cerr<<ErrS<<endl;
//exit(0);
//throw;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -