|
发表于 2023-10-18 14:00:27
|
显示全部楼层
问题可能出在你的构造函数上。请确保你的构造函数正确地初始化了三角形的三个边长。
以下是一个示例的三角形类及其构造函数的实现:
- #include <iostream>
- #include <cmath>
- class Triangle {
- private:
- double side1;
- double side2;
- double side3;
- public:
- Triangle(double s1, double s2, double s3) {
- side1 = s1;
- side2 = s2;
- side3 = s3;
- }
- double getPerimeter() {
- return side1 + side2 + side3;
- }
- double getArea() {
- double s = getPerimeter() / 2;
- return sqrt(s * (s - side1) * (s - side2) * (s - side3));
- }
- };
- int main() {
- double s1, s2, s3;
- std::cout << "请输入三角形的三个边长:";
- std::cin >> s1 >> s2 >> s3;
- Triangle triangle(s1, s2, s3);
- double perimeter = triangle.getPerimeter();
- double area = triangle.getArea();
- std::cout << "三角形的周长为:" << perimeter << std::endl;
- std::cout << "三角形的面积为:" << area << std::endl;
- return 0;
- }
复制代码
在上面的代码中,构造函数 Triangle(double s1, double s2, double s3) 接受三个参数,分别代表三角形的三个边长。构造函数将这些值分别赋给类的私有成员变量 side1 、 side2 和 side3 。
getPerimeter() 函数返回三角形的周长,即三个边长的和。
getArea() 函数使用海伦公式计算三角形的面积,并返回结果。海伦公式为:面积 = sqrt(s * (s - side1) * (s - side2) * (s - side3)),其中 s 是三角形的半周长。
最后,通过用户输入的边长创建一个三角形对象,并分别计算其周长和面积,然后输出结果。
希望以上解答对你有帮助!如果有任何疑问,请随时提问。 |
|