C++ 平面点类

题目描述

设计一个平面点类Point,具有以下属性:
横坐标,纵坐标;
具有以下成员函数:
(1)构造函数
(2)显示函数:以“(x,y)”的形式输出点坐标
(3)求两个点的L1范数距离的函数(坐标差的绝对值之和)

输入描述

输入为两行,每行是一个点的坐标(用空格间隔)

输出描述

输出有三行,前两行是两个点的坐标,第三行是L1范数距离(注意换行):

输入样例
1 2
2 1
输出样例
(1, 2)
(2, 1)
2
#include <iostream>
#include <cmath>

using namespace std;

class Point{
	private:
		int x, y;
	public:
		Point(){
			x = 0;
			y = 0;
		};
		
		Point(int new_x, int new_y){
			x = new_x;
			y = new_y;
		};
		
		void show(){
			cout << "(" << x <<", " << y << ")" << endl;
		}
		
		void dist(Point &p){
			cout << abs(x - p.x) + abs(y - p.y) << endl;  //  求两个点的L1范数距离的函数(坐标差的绝对值之和)
		}
};

int main(){
	int x, y;
	
	cin >> x >> y;
	Point *point1 = new Point(x, y);
	
	cin >> x >> y;
	Point *point2 = new Point(x, y);
	
	point1 -> show();
	point2 -> show();
	point1 -> dist(*point2);
	
	delete point2;
	delete point1;
	
 	return 0;
 }

注:
求两个点的L1范数距离的函数(坐标差的绝对值之和)用到的公式为
在这里插入图片描述

引入 #include <cmath>库可以调用abs()函数对x1 - x2 和 y1 - y2取绝对值。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值