洛谷P5735 【深基7.例1】距离函数 C语言/C++

【深基7.例1】距离函数

题目描述

给出平面坐标上不在一条直线上三个点坐标 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) (x_1,y_1),(x_2,y_2),(x_3,y_3) (x1,y1),(x2,y2),(x3,y3),坐标值是实数,且绝对值不超过 100.00,求围成的三角形周长。保留两位小数。

对于平面上的两个点 ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_1,y_1),(x_2,y_2) (x1,y1),(x2,y2),则这两个点之间的距离 d i s = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 dis=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2} dis=(x2x1)2+(y2y1)2

输入格式

输入三行,第 i i i 行表示坐标 ( x i , y i ) (x_i,y_i) (xi,yi),以一个空格隔开。

输出格式

输出一个两位小数,表示由这三个坐标围成的三角形的周长。

样例 #1

样例输入 #1

0 0
0 3
4 0

样例输出 #1

12.00

提示

数据保证,坐标均为实数且绝对值不超过 100 100 100,小数点后最多仅有 3 3 3 位。

所需变量
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;
}

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值