PTA6-4 计算两点之间距离(友元函数)

题目要求示例

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

分数 10

全屏浏览

切换布局

作者 黄万丽

单位 曲阜师范大学

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

函数接口定义:

 
   

输出两个点p1和p2之间的距离,要求输出结果必须保留两位小数。 void pointDis(Point& p1, Point& p2);

其中p1 和 p2 都是用户传入的参数。函数须计算p1和p2的距离并输出,要求输出结果必须保留两位小数。

裁判测试程序样例:

 
   

#include #include #include 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; }; /* 请在这里填写答案 */ 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; }

输入样例:

1.5  3.8  4.2  8.5
1  3  4  7
0  0  0  0

输出样例:

5.42
5.00

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

其实考察的就是C++中保留小数位数的、可以直接用C语言的printf来保留,也可以调用库函数来,题目在开头引入了头文件,表示建议你使用第二种方法进行代码的书写

// 输出两个点p1和p2之间的距离,要求输出结果必须保留两位小数。
void pointDis(Point& p1, Point& p2)
{
    double m = sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2));
    // cout<

因为在搜索的过程中没找到该题目的答案。所以写下来以便大家面向结果编程更加方便

以上代码仅限个人思路,如有建议,欢迎大家学习交流 

 

你可能感兴趣的:(c++,算法,开发语言)