题目描述
给定两个点P1和P2,其中P1的坐标为(x1,y1),P2的坐标为(x2,y2),请你计算两点间的距离是多少。
解释:
两点之间距离为 ( 横坐标之差 的平方 乘以 纵坐标之差 的平方 ) 的平方根
数据范围:
−10^9 ≤ xi, yi ≤ 10^9
样例
1.0 7.0
5.0 9.0
方法1
正常方法
#include<bits/stdc++.h>
using namespace std;
double f(double x1,double y1,double x2,double y2){
return sqrt(abs(x2-x1)*abs(x2-x1)+abs(y2-y1)*abs(y2-y1));
}
int main(){
double a,b,c,d;
cin>>a>>b>>c>>d;
printf("%.4lf",f(a,b,c,d));
}
方法2
奇怪的数据结构体调用
#include<bits/stdc++.h>
using namespace std;
struct node{
double x,y;
double calc_length(node node2){
double a=abs(this->x*1.0-node2.x);
double b=abs(this->y*1.0-node2.y);
double ans=sqrt(a*a+b*b);
return ans;
}
} a,b;
int main(void){
cin>>a.x>>a.y>>b.x>>b.y;
printf("%.4lf",a.calc_length(b));
return 0;
}
一本通相关题目:
提示:
- 只是修改了精度为.3lf(保留3位小数)