C++ 两点之间的距离

C++ 两点之间的距离

在这里插入图片描述
现在我们已知点S1和点S2的位置 (这里x和y反过来写,方便数组储存) ,要求两点之间的距离。

勾股定理求解

使用勾股定理求解:
a 2 + b 2 = c 2 a^2+b^2=c^2 a2+b2=c2
a和b表示三角形的两条直角边,c表示三角形的斜边,而这里的斜边就是我们要求的距离。
在这里插入图片描述
现在我们要求出a和b的长度:
a = ∣ s 1. x − s 2. x ∣ , b = ∣ s 1. y − s 2. y ∣ a=|s1.x-s2.x|,b=|s1.y-s2.y| a=s1.xs2.xb=s1.ys2.y
a = 4 , b = 5 a=4,b=5 a=4b=5
这里我们用了绝对值,防止出现负数。接下来再求出c:
a 2 + b b = c 2 , c = a + b a^2+b^b=c^2,c=\sqrt {a+b} a2+bb=c2c=a+b
c = 4 2 + 5 2 c=\sqrt {4^2+5^2} c=42+52
c = 41 c=\sqrt {41} c=41
大功告成,接下来就贴上代码:

#include <bits/stdc++.h>
using namespace std;

int s1x,s1y,s2x,s2y;
double a,b,c;

int main() {
	cin>>s1x>>s1y>>s2x>>s2y;
	a=abs(s1x-s2x);
	b=abs(s1y-s2y);
	c=sqrt(a*a+b*b);
	cout<<"dis = "<<c<<endl;
	return 0;
}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值