输入三个整数,判断能否构成直角三角形,若可以,计算面积
时间: 2024-02-02 15:37:34 浏览: 27
可以使用勾股定理判断是否为直角三角形,即判断$a^2 + b^2 = c^2$是否成立,其中$a,b,c$为三角形的三边。如果成立,则为直角三角形。
如果是直角三角形,可以使用海伦公式计算面积,即$S = \sqrt{p(p-a)(p-b)(p-c)}$,其中$p = \frac{a+b+c}{2}$为半周长。
以下是Python代码实现:
```python
a, b, c = map(int, input("请输入三个整数,用空格隔开:").split())
if a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
print("可以构成直角三角形")
# 计算面积
p = (a + b + c) / 2
S = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print("面积为:", S)
else:
print("不能构成直角三角形")
```
注意:输入的三个整数应满足$a \leq b \leq c$。如果不满足可以先进行排序。
相关问题
c++输入三个整数,判断能否构成直角三角形,若可以,计算面积
下面是一个实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
double p = (a + b + c) / 2.0;
double s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("可以构成直角三角形,面积为%.2lf\n", s);
} else {
printf("不能构成直角三角形\n");
}
} else {
printf("不能构成三角形\n");
}
return 0;
}
```
程序的运行结果如下:
```
请输入三个整数:3 4 5
可以构成直角三角形,面积为6.00
```
输入三个整数,判断能否构成直角三角形,若可以,计算面积用c++
可以使用勾股定理来判断三个整数是否能构成直角三角形,即a²+b²=c²,其中c为斜边长,a、b为两个直角边长。
以下是 Python 代码实现:
``` python
a, b, c = map(int, input("请输入三个整数,以空格分隔:").split())
if a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
print("可以构成直角三角形")
area = 0.5 * a * b
print("面积为:", area)
else:
print("不能构成直角三角形")
```
首先,使用 `map()` 函数将输入的三个整数转换成整型,再使用 `split()` 函数将它们以空格分隔开来。
然后,使用 if 语句判断是否满足勾股定理,如果满足,则输出可以构成直角三角形,并计算面积;否则,输出不能构成直角三角形。