题目描述
给出平面坐标上不在一条直线上三个点坐标 (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)22dis=\sqrt{(x_2−x_1)^2+(y_2−y_1)2^2}dis=(x2−x1)2+(y2−y1)22
输入格式
输入三行,第 iii 行表示坐标 (xi,yi)(x_i,y_i)(xi,yi),以一个空格隔开。
输出格式
输出一个两位小数,表示由这三个坐标围成的三角形的周长。
输入数据 1
0 0
0 3
4 0
输出数据 1
12.00
提示
数据保证,坐标均为实数且绝对值不超过 100100100,小数点后最多仅有 333 位。
代码
#include<bits/stdc++.h>
using namespace std;
double dis(double x1, double x2, double y1, double y2){
return sqrt((x1 - x2) * (x1 - x2) + (y2 - y1) * (y2 - y1));
}
int main() {
double x1, y1, x2, y2, x3, y3, s1, s2, s3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
s1 = dis(x1, x2, y1, y2);
s2 = dis(x3, x2, y2, y3);
s3 = dis(x1, x3, y3, y1);
printf("%.2lf", s1 + s2 + s3);
return 0;
}