【MAC 上学习 C++】Day 8-1. 习题3-5 三角形判断 (15 分)

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

1. 题目摘自

https://pintia.cn/problem-sets/12/problems/281

2. 题目内容

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

输入格式:

输入在一行中顺序给出六个 [−100,100] 范围内的数字,即三个点的坐标 x​1​​y1​​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

3. 源码参考
#include
#include
#include

using namespace std;

int main()
{
    double x1, x2, x3, y1, y2, y3;
    double a, b, c;
    double L, area;

    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;

    a = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
    b = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));
    c = sqrt(pow(x2 - x3, 2) + pow(y2 - y3, 2));

    if ((a + b > c) && (a + c > b) && (b + c > a))
    {
        L = a + b + c;
        area = sqrt(0.5 * L * (0.5 * L - a) * (0.5 * L - b) * (0.5 * L - c));
        cout << "L = " << fixed << setprecision(2) << L << ", A = " << area << endl;
    }
    else
    {
        cout << "Impossible" << endl;
    }

    return 0;
}

你可能感兴趣的:(【MAC 上学习 C++】Day 8-1. 习题3-5 三角形判断 (15 分))