题目描述
给出平面坐标上不在一条直线上三个点坐标 (x1,y1),(x2,y2),(x3,y3)(x_1,y_1),(x_2,y_2),(x_3,y_3)(x1,y1),(x2,y2),(x3,y3),坐标值是实数,且绝对值不超过 100.00,求围成的三角形周长。保留两位小数。
对于平面上的两个点 (x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)(x1,y1),(x2,y2),则这两个点之间的距离 dis=(x2−x1)2+(y2−y1)2dis=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}dis=(x2−x1)2+(y2−y1)2
输入格式
输入三行,第 iii 行表示坐标 (xi,yi)(x_i,y_i)(xi,yi),以一个空格隔开。
输出格式
输出一个两位小数,表示由这三个坐标围成的三角形的周长。
样例输入
0 0
0 3
4 0
样例输出
12.00
提示
数据保证,坐标均为实数且绝对值不超过 100100100,小数点后最多仅有 333 位。
参考代码
#include<bits/stdc++.h>
using namespace std;
struct node {
double x, y;
};
double dis(node a, node b) {
double s = sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
return s;
}
int main() {
node a, b, c;
cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y;
double res = dis(a, b) + dis(b, c) + dis(a, c);
cout << fixed << setprecision(2) << res;
return 0;
}