c+++练习题----求两点之间的距离

    技术2025-02-13  33

    7-1 求两点之间距离 (20分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

    0 9 3 -4

    输出样例:

    13.34

    代码实现:

    第一种:

    #include<iostream> #include<cmath> #include<iomanip> using namespace std; class point{ double x,y; public: void set(double a,double b) { x=a; y=b; } friend double Distance(point ob1,point ob2)//这个是定义为全局函数,让该函数可以访问该类的私有成员变量 { return sqrt((ob1.x-ob2.x)*(ob1.x-ob2.x)+(ob1.y-ob2.y)*(ob1.y-ob2.y)); } }; int main(void) { double a1,a2,b1,b2; cin>>a1>>a2>>b1>>b2; point ob1,ob2; ob1.set(a1,a2); ob2.set(b1,b2); cout<<setiosflags(ios::fixed); cout<<setprecision(2)<<Distance(ob1,ob2); }

    第二种:

     

    #include<iostream> #include<cmath> #include<iomanip> using namespace std; class point{ double x,y; public: void set(double a,double b) { x=a; y=b; } friend double Distance(point ob1,point ob2); }; double Distance(point ob1,point ob2) //把它放在外面,更加清楚这个是全局函数 { return sqrt((ob1.x-ob2.x)*(ob1.x-ob2.x)+(ob1.y-ob2.y)*(ob1.y-ob2.y)); } int main(void) { double a1,a2,b1,b2; cin>>a1>>a2>>b1>>b2; point ob1,ob2; ob1.set(a1,a2); ob2.set(b1,b2); printf("%.2f",Distance(ob1,ob2));//这样也是可以的 }

     

    Processed: 0.017, SQL: 9