用c++定义一个描述三角形的结构体类型:Tri,包含三个成员(三条边),均为整型。定义一个结构体类型变量t存放一个三角形的信息,输入三角形的三条边,若能围成三角形,则输出其周长和面积(结果保留两位小数),否则输出“不能围成三角形”。
时间: 2024-05-08 21:16:31 浏览: 218
```c
#include <stdio.h>
#include <math.h>
struct Tri {
int a;
int b;
int c;
};
int main() {
struct Tri t;
printf("请输入三角形的三条边:");
scanf("%d %d %d", &t.a, &t.b, &t.c);
if (t.a + t.b > t.c && t.a + t.c > t.b && t.b + t.c > t.a) {
float p = (t.a + t.b + t.c) / 2.0; // 计算半周长
float area = sqrt(p * (p - t.a) * (p - t.b) * (p - t.c)); // 计算面积
float perimeter = t.a + t.b + t.c; // 计算周长
printf("周长为%.2f,面积为%.2f\n", perimeter, area);
} else {
printf("不能围成三角形\n");
}
return 0;
}
```
相关问题
编写python程序,定义一个三角形类Triangle,类中包括:属性,三条边a,b,c,构造方法:可初始化三角形三条边。方法:ShoeInfo(),功能是显示三角形类三条边。GetPerimeter()),功能是获得三角形的周长。GetArea(),功能是获得面积的值。以上方法均为公有方法。在主程序中创建2个三角形的对象并初始化各个属性,调用ShowInfo方法,调用GetPerimenter方法和GetArea方法,并显示输出三角形的周长和面积
下面是实现题目要求的 Python 代码:
```python
import math
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def ShowInfo(self):
print("三角形的三条边分别为:", self.a, self.b, self.c)
def GetPerimeter(self):
return self.a + self.b + self.c
def GetArea(self):
p = (self.a + self.b + self.c) / 2
return math.sqrt(p * (p - self.a) * (p - self.b) * (p - self.c))
# 主程序
tri1 = Triangle(3, 4, 5)
tri1.ShowInfo()
print("三角形的周长为:", tri1.GetPerimeter())
print("三角形的面积为:", tri1.GetArea())
tri2 = Triangle(6, 8, 10)
tri2.ShowInfo()
print("三角形的周长为:", tri2.GetPerimeter())
print("三角形的面积为:", tri2.GetArea())
```
运行结果如下:
```
三角形的三条边分别为: 3 4 5
三角形的周长为: 12
三角形的面积为: 6.0
三角形的三条边分别为: 6 8 10
三角形的周长为: 24
三角形的面积为: 24.0
```
python定义一个三角形类(命名为 Triangle),利用三条边的长度对类进行初始化,注意检测三条边 是否能构成三角形,实现函数根据三角形的三边长求周长和面积。由类创建三个对象:三边 长分别 23-22-33 和 23-2-3 以及自己定义的三角形,要求输出各自的周长和面积。
好的,我明白了你的要求。下面是 Python 实现的代码:
```python
class Triangle:
def __init__(self, a, b, c):
"""
用三条边的长度对类进行初始化。
检测三条边是否能构成三角形。
"""
if a + b > c and a + c > b and b + c > a:
self.a = a
self.b = b
self.c = c
else:
raise ValueError("这三条边不能构成三角形!")
def perimeter(self):
"""计算三角形的周长"""
return self.a + self.b + self.c
def area(self):
"""计算三角形的面积"""
p = (self.a + self.b + self.c) / 2
return (p * (p - self.a) * (p - self.b) * (p - self.c)) ** 0.5
# 创建三个对象
try:
tri1 = Triangle(23, 22, 33)
tri2 = Triangle(23, 2, 3)
tri3 = Triangle(3, 4, 5)
except ValueError as e:
print(e)
# 输出各自的周长和面积
print("三角形1的周长为:", tri1.perimeter(), ",面积为:", tri1.area())
print("三角形2的周长为:", tri2.perimeter(), ",面积为:", tri2.area())
print("三角形3的周长为:", tri3.perimeter(), ",面积为:", tri3.area())
```
注意,上面的代码中加入了对传入的三条边是否能构成三角形的检查。如果不能构成三角形,则会抛出 ValueError 异常。同时,定义了求周长和面积的方法 perimeter 和 area。最后,创建了三个 Triangle 类的对象,分别输出了它们的周长和面积。
如果你有其他问题,欢迎继续提出哦!
阅读全文