#include <iostream> #include <cmath> #include <stdexcept> using namespace std; //给出三角形三边长,计算三角形面积 double area(double a, double b, double c) { //判断三角形边长是否为正 if (a <= 0 || b <= 0 || c <= 0) throw invalid_argument("the side length should be positive"); //判断三边长是否满足三角不等式 if (a + b <= c || b + c <= a || c + a <= b) throw invalid_argument("the side length should fit the triangle inequality"); //由Heron公式计算三角形面积 double s = (a + b + c) / 2; return sqrt(s * (s - a) * (s - b) * (s - c)); } int main() { double a, b, c; //三角形三边长 cout << "Please input the side lengths of a triangle: "; cin >> a >> b >> c; try { double s = area(a, b, c); //尝试计算三角形面积 cout << "Area: " << s << endl; } catch (exception &e) { cout << "Error: " << e.what() << endl; } return 0; }
时间: 2024-03-07 09:54:17 浏览: 20
这段代码实现了一个计算三角形面积的函数和一个主函数,主函数从用户输入三角形的三边长,调用计算面积的函数并输出结果。但是,在计算面积的函数中,还对三角形边长是否为正和是否满足三角不等式进行了判断,如果不满足条件,则抛出异常。在主函数中,使用try-catch语句捕获可能抛出的异常,并输出错误信息。这样可以保证程序的健壮性和正确性。
相关问题
#include <iostream> #include<algorithm> #include<cmath> #include <queue> using namespace std;
#include <iostream>:这是C++标准库中的头文件,用于输入输出流操作,包括cin、cout等。
#include<algorithm>:这是C++标准库中的头文件,用于提供各种算法操作,如排序、查找等。
#include<cmath>:这是C++标准库中的头文件,用于提供数学函数操作,如绝对值、平方根等。
#include <queue>:这是C++标准库中的头文件,用于提供队列操作,包括入队、出队等。
using namespace std;:这是C++的命名空间声明,表示使用std命名空间,可以直接使用std中的函数和对象。
#include<iostream> #include<cstdio> using namespace std;是什么意思
#include<iostream> #include<cstdio> using namespace std; 是C++中的预处理指令,用于引入头文件和命名空间。
1. #include<iostream> 是引入iostream头文件,其中包含了输入输出流的定义,例如cout和cin等。
2. #include<cstdio> 是引入cstdio头文件,其中包含了C语言标准输入输出函数的定义,例如printf和scanf等。
3. using namespace std; 是使用std命名空间,std是C++标准库的命名空间,其中包含了很多常用的函数和类。
这些预处理指令的作用是为了在程序中能够使用输入输出流和标准库函数,使得程序更加方便和简洁。