输入多组三角形边长,输出能构成三角形的各个三角形的面积(不能构成三角形的不输出)。要求:将计算三角形面积用函数实现,若不能构成三角形,函数返回值为0,否则返回面积值。提示:求三角形面积可使用海伦公式:S=sqrt(p(p-a)(p-b)(p-c)),其中p=(a+b+c)/2,sqrt为cmath头文件中声明的算术平方根函数。输入第一个数为三角形个数n,后续为n个三角形边长(要求定义为整型,否则不得分):输出为能构成三角形的各个三角形面积(实型数据)。
时间: 2023-11-22 16:53:48 浏览: 34
以下是实现该功能的代码,可以在本地编译器中运行:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double area(int a, int b, int c){
double p = (a + b + c) / 2.0;
if(p <= a || p <= b || p <= c) return 0;
else return sqrt(p * (p-a) * (p-b) * (p-c));
}
int main(){
int n;
cin >> n;
while(n--){
int a, b, c;
cin >> a >> b >> c;
double s = area(a, b, c);
if(s != 0) cout << s << endl;
}
return 0;
}
```
其中,`area`函数用于计算三角形面积,如果无法构成三角形则返回0;`main`函数中,先输入三角形个数n,然后循环n次,每次输入三个整数a、b、c表示三角形的三条边长,调用`area`函数计算面积,如果面积不为0,则输出。
相关问题
用c语言输出以下程序输入三角形三条边长判断是否能构成三角形若能输出面积
好的,以下是用 C 语言编写的程序,可以实现输入三角形三条边长并判断是否能构成三角形,若能则输出面积:
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c;
float s, area;
printf("请输入三角形的三条边长:\n");
scanf("%f%f%f", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
s = (a + b + c) / 2;
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("能构成三角形,面积为:%.2f\n", area);
} else {
printf("不能构成三角形!\n");
}
return 0;
}
```
在这个程序中,我们首先使用 `scanf()` 函数读入三角形的三条边长,然后使用 `if` 语句判断是否能构成三角形。如果能构成三角形,则使用海伦公式(Heron's formula)计算出三角形的面积,并使用 `printf()` 函数输出结果。如果不能构成三角形,则直接输出提示信息。
输入三条边长,如果能构成三角形就用海伦公式(,其中)计算面积,否则输出不能构成三角形
海伦公式计算三角形面积的公式为:
$S = \sqrt{p(p-a)(p-b)(p-c)}$
其中,$a,b,c$为三角形的三条边长,$p$为半周长,即$p = \frac{a+b+c}{2}$。
判断三条边长是否能构成三角形的方法为:任意两边之和大于第三边,即 $a+b>c$、$a+c>b$、$b+c>a$。
下面是 Python 代码实现:
```python
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
if a+b>c and a+c>b and b+c>a:
p = (a+b+c)/2
S = (p*(p-a)*(p-b)*(p-c)) ** 0.5
print("面积为:", S)
else:
print("不能构成三角形")
```
示例输出:
```
请输入第一条边长:3
请输入第二条边长:4
请输入第三条边长:5
面积为: 6.0
```
```
请输入第一条边长:1
请输入第二条边长:2
请输入第三条边长:4
不能构成三角形
```