浙大版《C语言程序设计(第3版)》习题3-5

习题3-5 三角形判断 (15分)

给定平面上任意三个点的坐标(x​1​​,y​1​​)、(x​2​​,y​2​​)、(x​3​​,y​3​​),检验它们能否构成三角形。

输入格式:
输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x​1​​、y​1​​、x​2​​、y​2​​、x​3​​、y​3​​。

输出格式:
若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位

输入样例1:

4 5 6 9 7 8

输出样例1:

L = 10.13, A = 3.00

输入样例2:

4 6 8 12 12 18

输出样例2:

Impossible

代码:

#include"stdio.h"
#include"math.h"
#include"stdlib.h"
int main()
{
    double x1, y1, x2, y2, x3, y3, a, b, c, s, l,p;
    scanf("%lf %lf %lf %lf %lf %lf", &x1, &y1, &x2, &y2, &x3, &y3);
    //求a、b、c三边
    a = sqrt(pow(fabs(x1-x2),2)+pow(fabs(y1-y2),2));
    b = sqrt(pow(fabs(x1-x3),2)+pow(fabs(y1-y3),2));
    c = sqrt(pow(fabs(x3-x2),2)+pow(fabs(y3-y2),2));
    p = (a+b+c)/2;                          //半周长
    
    //判断是否能构成三角形(两边之和大于第三边,两边只差小于第三边
    if(a+b > c && a-b < c)
    {
        l = 2*p;
        s = sqrt(p*(p-a)*(p-b)*(p-c));     //海伦公式求面积
        printf("L = %0.2lf, A = %0.2lf", l, s);
    }
    else
    {
        printf("Impossible");
    }
    return 0;
}

笔记:
1.海伦公式:S=√p(p-a)(p-b)(p-c)
其中,p=(a+b+c)/2 ,a,b,c为三角形三边
2.abs()函数:求整型绝对值 abs(int x),包含在#include"stdlib.h"头文件中,fabs(double x)求浮点数绝对值
3.pow()函数:指数函数(x的y次方) double pow(double x, double y);,包含在#include"math.h"头文件中
4.sqrt()函数:开根号,原型为 float sqrt (float),double sqrt (double),double long sqrt(double long)
注意没有sqrt (int),但是返回值可以为int,包含在#include"math.h"头文件中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值