⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p13_2.cpp

📁 相当丰富的C++源码
💻 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 + -