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<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; }; /* 请在这里填写答案 */ 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<<m<<endl;
    // printf("%.2f\n", m);
    std::cout << std::fixed << std::setprecision(2) << m << std::endl; 
}

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

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

 

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值