2.输入三角形的3条边长,若输入数据异常,用异常处理结构处理, 若输入三条边不能构成三角形,提示“不能组成三角形”,如果能 组成三角形,求三角形面积,若输入结果保留2位小数。
时间: 2024-03-13 13:45:18 浏览: 19
好的,以下是 Python3 的代码实现:
```python
import math
try:
a, b, c = map(float, input("请输入三角形的三条边长,以空格分隔:").split())
if a + b <= c or a + c <= b or b + c <= a:
raise ValueError("不能组成三角形")
p = (a + b + c) / 2
area = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("三角形的面积为:{:.2f}".format(area))
except ValueError as e:
print("输入数据异常:", e)
```
代码的具体实现方法是:
1. 使用 `map` 函数将用户输入的三个字符串转换为浮点数,并使用 `split` 函数将字符串按照空格分割成一个列表,这样就得到了三角形的三条边长。
2. 使用 `if` 语句判断这三条边长是否能够构成一个三角形,如果不能,则会抛出 `ValueError` 异常,并提示“不能组成三角形”。
3. 如果可以构成三角形,则使用海伦公式计算三角形的面积,并使用格式化字符串输出结果,保留两位小数。
4. 如果用户输入的数据不符合要求,也就是无法使用 `map` 函数将其转换为浮点数,或者输入的值不是三个数,程序会抛出 `ValueError` 异常,并提示“输入数据异常”。
相关问题
3. 输入三角形的三条边,求三角形面积。当三条边无法构成三角形时进行异常处理。用java编程
好的,我会记住你的要求,下面是使用Java编写的代码实现你的需求:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double a, b, c, s, area;
System.out.println("请输入三角形的三条边长:");
a = scan.nextDouble();
b = scan.nextDouble();
c = scan.nextDouble();
if (a + b > c && a + c > b && b + c > a) {
s = (a + b + c) / 2; // 计算半周长
area = Math.sqrt(s * (s - a) * (s - b) * (s - c)); // 使用海伦公式计算面积
System.out.println("该三角形的面积为:" + area);
} else {
System.out.println("输入的三条边无法构成三角形!");
}
scan.close();
}
}
```
你可以直接运行这段代码,它会等待你从控制台输入三角形的三条边长,然后计算出三角形的面积并输出。如果输入的三条边无法构成三角形,程序会进行异常处理并提示无法构成三角形。
编写输入三角形三条边判断能够构成三角形,若能构成则计算三角形面积和周长,否则引发异常
下面是一个 Python 代码示例,可以实现输入三角形三条边,判断能否构成三角形,并计算三角形面积和周长:
```python
import math
class Triangle:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def is_valid(self):
if self.a + self.b > self.c and self.a + self.c > self.b and self.b + self.c > self.a:
return True
else:
return False
def perimeter(self):
return self.a + self.b + self.c
def area(self):
s = self.perimeter() / 2.0
return math.sqrt(s * (s - self.a) * (s - self.b) * (s - self.c))
try:
a, b, c = map(float, input("请输入三角形的三条边长,以空格分隔:").split())
triangle = Triangle(a, b, c)
if triangle.is_valid():
print("能够构成三角形")
print("周长为:", triangle.perimeter())
print("面积为:", triangle.area())
else:
raise ValueError("无法构成三角形")
except ValueError as e:
print(e)
```
运行结果如下:
```
请输入三角形的三条边长,以空格分隔:3 4 5
能够构成三角形
周长为: 12.0
面积为: 6.0
```
如果输入的三条边无法构成三角形,会引发异常,提示无法构成三角形。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)