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

将一个五边形分割成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.
答案:若无答案欢迎评论

将一个五边形分割成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.
答案:若无答案欢迎评论