rwkj 1359 友元:两点距离

C++:友元1(两点之间的距离)
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:674 测试通过:457

描述

定义一个二维平面中的点(point)类,类中的数据成员为点的坐标,然后定义友元函数dist()用来计算两点之间的距离。

将下面的程序1 和程序2填写完整。

程序1 :

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
……………………………………
……………………………………
……………………………………
int main()
{
int n;
double x1,x2,y1,y2;
cin>>n;
while (n--)
{
cin>>x1>>y1>>x2>>y2;
point p1(x1,y1),p2(x2,y2);
cout<<fixed<<setprecision(3)<<dist(p1,p2)<<endl;
}
return 0;
}

程序2:

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
……………………………………
……………………………………
……………………………………
int main()
{ int n; double x1,x2,y1,y2; test t;
cin>>n;
while (n--)
{ cin>>x1>>y1>>x2>>y2;
point p1(x1,y1),p2(x2,y2);
cout<<fixed<<setprecision(3)<<t.dist(p1,p2)<<endl;
}
}

输入

输入包含n组测试例, 第1行是测试组数。

第2行--第n+1行为测试数据,每组测数据有4个实数,表示 2个点的坐标(x1,y1)和(x2,y2)。

输出

两点之间的距离(保留3位小数)。

样例输入

2
0 0 3 4
1 1 2 2

样例输出

5.000
1.414

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
double distance(int x1,int y1,int x2,int y2)
{
double s;
s=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
return s;
}
int main()
{
int x1,x2,y1,y2,n;
double s;
cin>>n;
while(n--)
{
cin>>x1>>y1>>x2>>y2;
s=distance(x1,y1,x2,y2);
cout<<setiosflags(ios::fixed)<<setprecision(3)<<s<<endl;
}
return 0;
}

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

class point
{
double x,y;
friend double dist(point, point);
public:
point(double xx, double yy) {x=xx;y=yy;}
};

double dist(point p1,point p2)
{
return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}

int main()
{
int n;
double x1,x2,y1,y2;
cin>>n;
while (n--)
{
cin>>x1>>y1>>x2>>y2;
point p1(x1,y1),p2(x2,y2);
cout<<fixed<<setprecision(3)<<dist(p1,p2)<<endl;
}
return 0;
}

#include <iostream.h>
#include <iomanip.h>
#include <math.h>

class point
{
double x,y;
friend double distance(point, point);
public:
point(double xx, double yy) {x=xx;y=yy;}
};

double distance(point p1,point p2)
{
return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}

int main()
{
int n;
double x1,x2,y1,y2;
cin>>n;
while (n--)
{
cin>>x1>>y1>>x2>>y2;
point p1(x1,y1),p2(x2,y2);
cout<<fixed<<setprecision(3)<<distance(p1,p2)<<endl;
}
return 0;
}

#include <iostream.h>
#include <iomanip.h>
#include <math.h>

class point
{
double x,y;

public:
double distance(point p)
{ return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)); }

point(double xx, double yy) {x=xx;y=yy;}
};

int main()
{
int n;
double x1,x2,y1,y2;
cin>>n;
while (n--)
{
cin>>x1>>y1>>x2>>y2;
point p1(x1,y1),p2(x2,y2);
cout<<fixed<<setprecision(3)<<p1.distance(p2)<<endl;
}
return 0;
}

rwkj 1359 友元:两点距离,布布扣,bubuko.com

时间: 2024-10-12 13:51:53

rwkj 1359 友元:两点距离的相关文章

rwkj 1284 ------nyist 101 两点距离

101 两点距离时间限制:3000 ms | 内存限制:65535 KB 难度:1描述 输入两点坐标(X1,Y1),(X2,Y2)(0<=x1,x2,y1,y2<=1000),计算并输出两点间的距离.输入第一行输入一个整数n(0<n<=1000),表示有n组测试数据;随后每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开.输出对于每组输入数据,输出一行,结果保留两位小数.样例输入20 0 0 10 1 1 0样例输出1.001.41 #include&l

HDU_5723_最小生成树+任意两点距离的期望

Abandoned country Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3449    Accepted Submission(s): 846 Problem DescriptionAn abandoned country has n(n≤100000)villages which are numbered from 1 to

Android 两点距离的计算方法

最近做项目需要计算用户和商家之间的距离,并要求在Listview中显示具体距离.想了一下大致思路,首先是拿到当前用户的经纬度,在拿到具体某个商家的经纬度(服务端商家的经纬度已提供),根据用户和商家的经纬度来计算当前用户和商家的实际距离.就研究了一下具体的实现方法,计算两点距离一般有两种实现方式: 一种是使用勾股定理计算: 一种是计算两点之间的球面距离: 两种计算方式我做了一下比较,当两点的距离较近时使用两种方式计算的结果基本一致,但是当两点的距离比较远时,计算的结果就会相差甚远,比较发现两点之间

圆周上两点距离-python

#!/bin/python# -*- coding: UTF-8 -*-import sys """搜狗题目,圆周上两点距离, 第一行:输入n(圆上的n个点) 第二行:输入n个点的度数s(0<=s<=360) 双精度,8位小数 输出园中距离最远的两点之间的夹角度数m(0<=m<=180),双精度,保留8位小数"""n = input()circle = []for i in range(n): doublenum = sy

js根据经纬度计算两点距离

根据两点经纬度计算距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作“赤道”.在赤道的南北两边,画出许多和赤道平行的圆圈,就是“纬圈”:构成这些圆圈的线段,叫做纬线.我们把赤道定为纬度零度,向南向北各为90度,在赤道以南的叫南纬,在赤道以北的叫北纬.北极就是北纬90度,南极就是南纬90度.纬度的高低也标志着气候的冷热,如赤道和低纬度地地区无冬,两极和高

两点距离

描述 输入两点坐标(X1,Y1),(X2,Y2)(0<=x1,x2,y1,y2<=1000),计算并输出两点间的距离. 输入 第一行输入一个整数n(0<n<=1000),表示有n组测试数据;随后每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开. 输出 对于每组输入数据,输出一行,结果保留两位小数. 样例输入 2 0 0 0 1 0 1 1 0 样例输出 1.00 1.41 1 import java.text.NumberFormat; 2 impor

Android studio 百度地图开发(6)Marker绑定事件、计算两点距离

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

地球表面两点距离计算

//地球半径,单位为公里 var EARTH_RADIUS = 6378.137; //计算弧度 rad : function (degree) { return degree * Math.PI / 180.0; }, //计算两个经纬度坐标之间的距离,返回单位为公里的数值 calDistance : function (lat1, lng1, lat2, lng2) { var radLat1 = this.rad(lat1); var radLat2 = this.rad(lat2); v

HDU2376Average distance(树形dp|树上任意两点距离和的平均值)

思路: 引:如果暴力枚举两点再求距离是显然会超时的.转换一下思路,我们可以对每条边,求所有可能的路径经过此边的次数:设这条边两端的点数分别为A和B,那 么这条边被经过的次数就是A*B,它对总的距离和的贡献就是(A*B*此边长度).我们把所有边的贡献求总和,再除以总路径数N*(N-1)/2,即为最 后所求. 每条边两端的点数的计算,实际上是可以用一次dfs解决的.任取一点为根,在dfs的过程中,对每个点k记录其子树包含的点数(包括其自身),设点数为a[k],则k的父亲一侧的点数即为N-a[k].这