求最近距离的药店。【问题描述】
一到冬季,感冒生病的人就变多。试根据下面的描述求出距离小明家最近的药店距离。假设小明家用二维平面下的坐标点来表示(x,y),小明家附近有n家药店(n<=10),n家药店距离小明家均不超过1000,用坐标点(xi,yi)表示,编写程序求得小明家到最近的药店距离。即对于任意不同的xi,xj,求出min{ sqrt((xi- x)(xi-x) + (yi-y)(yi-y) )}
同时,需要采用以下实现方式完成:
自定义实现Point类,同时实现构造,拷贝构造,析构三个函数。并统计整个程序中三种函数的调用次数。可格式参考如下:
class Point{ public:
int x:y:
Point(int a=0,int b=0){…}
Point(const Point &a)L)
~Point0{.…}
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
刚刚学习编程,这个问题应该怎么解决
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- 极智视界 2022-12-21 12:03关注
获得7.50元问题酬金 下面是一个可以解决这个问题的示例代码:
#include <iostream> #include <cmath> using namespace std; // 定义 Point 类 class Point { public: int x, y; // 构造函数 Point(int a = 0, int b = 0) { x = a; y = b; cout << "Point 构造函数被调用" << endl; } // 拷贝构造函数 Point(const Point &a) { x = a.x; y = a.y; cout << "Point 拷贝构造函数被调用" << endl; } // 析构函数 ~Point() { cout << "Point 析构函数被调用" << endl; } }; // 计算两点之间的距离 double distance(Point p1, Point p2) { return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y)); } int main() { int n; Point home(0, 0); // 小明家的坐标 Point store(0, 0); // 药店的坐标 cout << "请输入小明家的坐标:" << endl; cin >> home.x >> home.y; cout << "请输入药店的数量:" << endl; cin >> n; // 记录最小距离 double min_distance = 1000000; for (int i = 0; i < n; i++) { cout << "请输入第 " << i+1 << " 家药店的坐标:" << endl; cin >> store.x >> store.y; // 计算两点之间的距离 double d = distance(home, store); // 更新最小距离 if (d < min_distance) { min_distance = d; } } cout << "距离最近的药店距离小明家 " << min_distance << " 单位" << endl; return 0; }
在上面的代码中,我们定义了一个 Point 类,其中包含构造函数、拷贝构造函数和析构函数。
在主函数中,我们首先输入小明家的坐标,然后输入药店的数量。接着,我们通过循环输入药店的坐标,并计算与小明家之间的距离。如果距离小于最小距离,就更新最小距离。最后,输出最小距离即可。
解决 1无用
悬赏问题
- ¥15 H.264选择性加密例程
- ¥50 windows的SFTP服务器如何能批量同步用户信息?
- ¥15 centos7.9升级python3.0的问题
- ¥15 如何解决调试dev-出++5.11不成功问题
- ¥15 安装CentOS6时卡住
- ¥20 关于#监控系统#的问题,如何解决?(相关搜索:系统软件)
- ¥20 c语言写的8051单片机存储器mt29的模块程序
- ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小
- ¥50 java算法,给定试题的难度数量(简单,普通,困难),和试题类型数量(单选,多选,判断),以及题库中各种类型的题有多少道,求能否随机抽题。
- ¥50 rk3588板端推理