-->
当前位置:首页 > 题库 > 正文内容

函数题:使用函数计算五边形的面积

Luz4年前 (2021-11-05)题库1294
本题要求实现2个函数,分别判断3条边能否构成一个三角形和计算三角形的面积,使得可以完成五边形面积的计算。题目保证计算结果不超过双精度范围。

![t.png](~/e99f14ab-8ec7-495f-8fba-f0f3023926db.png)


将一个五边形分割成3个三角形(如上图所示),输入这些三角形的7条边长,计算该五边形的面积。要求定义和调用函数is_triangle(a, b, c)判断a、b、c能否构成一个合法的三角形, 在一个三角形中, 任意两边之和应大于第三边。定义和调用函数area(a,b,c)计算边长为a、b、c的三角形面积,三角形面积计算公式:$$area=\sqrt{s(s-a)(s-b)(s-c)}$$,其中$$s=(a+b+c)/2$$。

### 函数接口定义:
c++
int is_triangle(double a, double b, double c);
double area(double a, double b, double c);


函数is_triangle的功能是:若a、b、c能构成一个合法的三角形,则返回1;否则返回0。

函数area(a,b,c)的功能是:计算并返回边长为a、b、c的三角形面积。

### 裁判测试程序样例:
c++
# include <stdio.h>
# include <math.h>

int is_triangle(double a, double b, double c);/* 判断a,b,c三条边能否构成一个三角形 */
double area(double a, double b, double c); /* 计算三角形面积 */

int main (void)
{
double a1, a2, a3, a4, a5, a6, a7, result;

scanf("%lf%lf%lf%lf%lf%lf%lf", &a1, &a2, &a3, &a4, &a5, &a6, &a7);
if( is_triangle(a1, a5, a6) != 0 && is_triangle(a4, a6, a7) != 0 && is_triangle(a2, a3, a7) != 0){
result = area(a1, a5, a6) + area(a4, a6, a7) + area(a2, a3, a7);
printf("%.2f\n", result) ;
}else{
printf("These sides do not correspond to a valid pentagon\n");
}

return 0;
}

/* 请在这里填写答案 */


### 输入样例1:

in
3.1 4.2 5 3.03 4.01 5.89 6.36


### 输出样例1:

out
25.16


### 输入样例2:

in
3 2 5 3 4 5 3


### 输出样例2:

out
These sides do not correspond to a valid pentagon.






答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。