求两点之间距离 C++

本文介绍了一个简单的C++程序,该程序定义了一个Point类来表示二维坐标系中的点,并实现了一个Distance()成员函数来计算两点之间的欧几里得距离。通过输入两个点的坐标,程序能够输出这两个点间的精确距离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 求两点之间距离(20 分)

定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数。 定义一个函数Distance(), 用于求两点之间的距离。
输入格式:

输入有两行: 第一行是第一个点的x坐标和y坐标; 第二行是第二个点的x坐标和y坐标。
输出格式:

输出两个点之间的距离,保留两位小数。
输入样例:

0 9 3 -4
输出样例:

13.34

 

#include<iostream>  
#include<cmath>  
#include<stdio.h>
using namespace std;  
  
class Point{  
private:  
    double x,y;  
public:  
    Point(double x,double y)  
    {  
        this->x = x;  
        this->y = y;  
    }  
    double Getx()  
    {  
        return x;  
    }  
    double Gety()  
    {  
        return y;  
    }  
      
    double Distance(const Point &p)  //定义拷贝构造函数  
    {  
        x -= p.x;  
        y -= p.y;  
        return sqrt(x*x+y*y);  
    }  
    void ShowPoint()  
    {  
        cout << "<" << Getx() << "," << Gety() << ">" << endl;  
    }  
};  
  
int main()  
{  
    double x1,y1,x2,y2;  
    double x;

    cin >> x1 >> y1 >> x2 >> y2;  
    Point P1(x1,y1);  
    Point P2(x2,y2);  

      x=P1.Distance(P2);
      cout.precision(2);
      cout.setf(ios::fixed);
    cout << x << endl;  
    
    return 0;  
}  

 

转载于:https://www.cnblogs.com/chuijingjing/p/9032984.html

C++解二维平面上两点之间距离是一个常见的几何运算问题。根据欧几里得度量公式,如果我们已知两个点 A(x₁,y₁) 和 B(x₂,y₂),那么这两点间的直线距离 d 可以按照以下数学表达式计算得出: \[d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}\] 其中 \(x\) 表示横坐标,\(y\) 表示纵坐标。\(\sqrt{\cdot}\) 符号表示平方根操作。 接下来我们将这个理论应用到程序设计中,并给出一段完整的 C++ 示例代码来演示如何编写这样一个函数来进行两点距离计算: ### 完整示例 ```cpp #include <iostream> // 用于输入输出流支持 #include <cmath> // 包含 sqrt(), pow() 等标准库函数 using namespace std; /** * 计算两点间欧式距离 */ double distanceBetweenPoints(double x1, double y1, double x2, double y2){ return sqrt(pow((x2-x1), 2)+pow((y2-y1), 2)); } int main(){ // 用户交互部分,获取用户输入的数据 cout << "请输入第一个点的位置(格式:x y):" ; double px1, py1; cin >> px1 >> py1 ; cout << "\n请输入第二个点的位置(格式:x y):" ; double px2, py2; cin >> px2 >> py2 ; // 调用 function 并显示结果 double dist = distanceBetweenPoints(px1,py1,px2,py2); printf("\n(%f,%f) 到 (%f,%f) 的欧氏距离为 %.4f\n", px1, py1, px2, py2,dist); return 0; } ``` 上述代码实现了从控制台读取两组坐标数据作为起点和终点,然后利用我们定义距离函数 `distanceBetweenPoints()` 来获得这两个位置之间距离,并最终将结果显示给用户查看。 该段代码还展示了几个关键的知识点: - **<cmath> 库**:包含了如平方 (`pow`) 和开方 (`sqrt`) 操作所需的数学函数; - **printf 格式化输出** :虽然这里也可以使用 `cout`,但是为了更好地控制小数位数采用更直观的方式呈现数字信息; 这种做法能够有效地帮助您理解如何基于基本原理,在 C++ 编程语言环境下解决实际的空间几何学题目。 如果您需要三维空间内的计算或者其他特殊条件下的距离测量,请参照相应维度或场景调整算法逻辑即可适应新的需变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值