码农的世界程序书海程序员

异常

2018-06-07  本文已影响10人  逍遥_9353

/*编写一个程序,求输入数的平方根。设置异常处理,对输入负数的情况给出提示*/


#include<iostream>

#include<cmath>

using namespace std;

double nsqrt(double &a)

{

double n;

if(a>=0)

  n=sqrt(a);

else

  throw a;

  return n;

}

int main()

{

double n;

char ch='y';

try

{

while(ch=='y')

{

cin>>n;

cout<<nsqrt(n)<<endl;

cout<<"是否继续输入(y/n):";

cin>>ch;

cout<<endl;

}

}

catch(double)

{

cout<<"输入的数为负数,无法开平方根!"<<endl;

}

return 0;

}         


/*

给出三角形的三边a,b,c,求三角形的面积。只有a+b>c,b+c>a,c+a>b时才能构成三角形。

方法1:设置异常处理,对不符合三角形条件的输出警告信息,不予计算。

方法2:用断言检测代码是否有误。

*/


#include<iostream>

#include<cmath>

using namespace std;

double area(double &a,double &b,double &c)

{

double _area;

if(a+b>c&&a+c>b&&b+c>a)

{

double s=(a+b+c)/2;

_area=sqrt(s*(s-a)*(s-b)*(s-c));

}

else

    throw a;

return _area;

}

int main()

{

double a,b,c;

cin>>a>>b>>c;

try

{

while(a>0&&b>0&&c>0)

{

cout<<area(a,b,c)<<endl;

cout<<"是否需要继续输入(a=b=c=0):";

cin>>a>>b>>c;

cout<<endl;

}

}

catch(double)

{

cout<<"输入有误"<<endl;

}

return 0;

}         


上一篇 下一篇

猜你喜欢

热点阅读