《程序设计基础》 第五章 函数 例题5-2 使用函数计算五边形的面积 (10 分)

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

t.png

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

函数接口定义:

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的三角形面积。

裁判测试程序样例:

# 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("The area of the Pentagon is %.2f\n", result) ;
    }else{
        printf("These sides do not correspond to a valid pentagon\n");
    }

    return 0;
}

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

输入样例1:

3.1 4.2 5 3.03 4.01 5.89 6.36

结尾无空行

输出样例1:

25.16

结尾无空行

输入样例2:

3 2 5 3 4 5 3

结尾无空行

输出样例2:

These sides do not correspond to a valid pentagon.

结尾无空行

int is_triangle(double a, double b, double c){
    if(a+b>c&&a+c>b&&b+c>a){
        return 1;
    }
    else{
        return 0;
    }
}
double area(double a, double b, double c){
    double s,area;
        s=(a+b+c)/2;
        area=sqrt(s*(s-a)*(s-b)*(s-c));
        return area;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茶然o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值