c++异常处理,,,同时处理除数为0以及开根号内部不能小于0
2015-07-04 00:23
267 查看
1001:异常——排除表达式的异常
Time/Memory Limit:1000 MS/32768 K Submitted: 46 Accepted: 35
Problem Description
设有表达式 (a+b/c),对其开根号,计算表达式的值,要求能排除除数为0及根号小于0的异常。
Input
输入数据有多组。
Output
对于每组输入数据,输出占两行(具体输出格式参见输出样例)
Sample Input
5 -100 2 23 35 0 43 75 15
Sample Output
a=5,b=-100,c=2 Negative numbers can not square root! a=23,b=35,c=0 Divisor can not be 0! a=43,b=75,c=15 The result is:6.9282
Author
wj
Source
2014 1 2 异常与<<重载(VIII)
Recommend
zh#include<iostream>
#include<cmath>
using namespace std;
int chu=0;
double fu=0;
double F(double a,double b,double c){
if(c==0)
throw chu;
if((a+b/c)<0)
throw fu;
return sqrt(a+b/c);
}
int main(){
double a,b,c;
while(cin>>a>>b>>c){
cout<<"a="<<a<<","<<"b="<<b<<","<<"c="<<c<<endl;
try{
cout<<"The result is:"<<F(a,b,c)<<endl;
}
catch(int){
cout<<"Divisor can not be 0!\n";
}
catch(double){
cout<<"Negative numbers can not square root!\n";
}
}
return 0;
}
对于多种问题不主张这种写法,
可以用类来try catch;
由于只有2个问题,故用int double 2个作为处理问题的端口
相关文章推荐
- 【C++ Primer Plus学习笔记】第二章:一个函数的基本的组成
- 什么时候用C而不用C++?
- C++可调用对象适配器和绑定器
- 双向链表的C++实现
- 【学习笔记】【C语言】文件的包含
- 漂亮的C++控制台界面(格式化输入输出)
- 黑马程序员---C语言基础---函数、参数、返回值
- C++实现栈的链接存储
- C++实现顺序栈之两栈共享存储空间
- 多线程(C++)临界区Critical Sections问题
- C++中构造函数初始化列表为什么会比构造函数中赋值要高效
- 约瑟夫问题:有n个人围成一圈,顺序报数(1~3),报到3退出
- C++ 不输入回车就不结束输入的实现方法
- c/c++内存机制
- C语言可变参数
- C++读书笔记:构造函数与析构函数(来自谭浩强的C++程序设计)
- 自学笔记-C语言复习2015年7月3日
- 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数
- c++ primer读书笔记-第七章 函数
- C++重载覆盖和隐藏,虚函数与纯虚函数