6-29.计算两点之间距离(友元函数)

现有一个类Point表示二维空间中的点,包含私有数据成员double x和double y,x表示该点的x坐标,y表示该点的y坐标。要求编写一个友元函数,输出两点之间的距离。
输入说明:
每一行四个数值,前两个数是第一个坐标点的x坐标和y坐标,后两个数是第二个坐标点的x坐标和y坐标。当输入四个0时表示输入结束。
输出说明:
输出两点距离必须保留两位小数。

代码实现:

#include<iostream>
#include<cmath>
#include<iomanip>
using  namespace  std;
class  Point  {
        public:
                Point()  {
                }
                Point(double  px,double  py)  {
                        x=px;
                        y=py;
                }
                friend  void  pointDis(Point  &p1,Point  &p2);
        private:
                double  x;
                double  y;
};
/*  请在这里填写答案  */
void pointDis(Point &p1,Point &p2){
	cout<<fixed<<setprecision(2)<<sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y))<<endl;
}


int  main()  {
        double  x1,y1,x2,y2;
        cin>>x1>>y1>>x2>>y2;
        Point  p1,p2;
        while(!(x1==0&&y1==0&&x2==0&&y2==0))  {
                p1=Point(x1,y1);
                p2=Point(x2,y2);
                pointDis(p1,p2);
                cin>>x1>>y1>>x2>>y2;
        }
        return  0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值