农产品电商网站建设主要工作电子商务网站建设案例
【深基7.例1】距离函数
题目描述
给出平面坐标上不在一条直线上三个点坐标 (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),以一个空格隔开。
输出格式
输出一个两位小数,表示由这三个坐标围成的三角形的周长。
样例 #1
样例输入 #1
0 0
0 3
4 0
样例输出 #1
12.00
提示
数据保证,坐标均为实数且绝对值不超过 100100100,小数点后最多仅有 333 位。
所需变量
double a[3][2];//用来表示三个坐标double sum = 0;//用来表示已经计算过的距离总和
思路:我们首先需要编写一个方法,就是计算两个坐标之间的距离
double jisuan(double a,double b,double c,double d){return sqrt(pow(abs(a-c),2)+pow(abs(b-d),2));
}
其中,(a,b)(c,d)分别代表着两个坐标,然后计算两个坐标之间的距离,sqrt是开根号的意思,abs是取绝对值的意思,pow(x,y)其中两个参数的含义是,取x的y次方。
然后分别计算三个点之间的距离,完整代码如下(编译器是dev,语言是C语言):
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
double jisuan(double a,double b,double c,double d){return sqrt(pow(abs(a-c),2)+pow(abs(b-d),2));
}
int main(){double a[3][2];double sum = 0;for(int i = 0;i<3;i++){for(int j = 0;j<2;j++){cin>>a[i][j];}}for(int i = 0;i<3;i++){sum += jisuan(a[(i+1)%3][0],a[(i+1)%3][1],a[i][0],a[i][1]);}//cout<<setprecision(2)<<sum<<endl;printf("%.2lf",sum);return 0;
}