用C++写代码。使用DevC++运行。使用函数重载的方法定义两个重名函数,分别求出平面间两点(整型数)间距离和平面间两点(双精度数)间距离,如果没有输入第二点的坐标则默认为原点(0,0)
时间: 2024-03-10 11:46:18 浏览: 86
C++实现三维空间中点到点、点到直线、点到平面的距离计算
5星 · 资源好评率100%
好的,下面是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double distance(int x1, int y1, int x2 = 0, int y2 = 0) {
return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
}
double distance(double x1, double y1, double x2 = 0, double y2 = 0) {
return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
}
int main() {
int x1, y1, x2, y2;
double dx1, dy1, dx2, dy2;
cout << "请输入第一个点的坐标(x1, y1): ";
cin >> x1 >> y1;
cout << "请输入第二个点的坐标(x2, y2,不输入则默认为原点): ";
if(cin.peek() == '\n') {
cout << "(0, 0)" << endl;
x2 = y2 = 0;
} else {
cin >> x2 >> y2;
}
cout << "整型数坐标下两点间距离为: " << distance(x1, y1, x2, y2) << endl;
cout << "请输入第一个点的坐标(dx1, dy1): ";
cin >> dx1 >> dy1;
cout << "请输入第二个点的坐标(dx2, dy2,不输入则默认为原点): ";
if(cin.peek() == '\n') {
cout << "(0, 0)" << endl;
dx2 = dy2 = 0;
} else {
cin >> dx2 >> dy2;
}
cout << "双精度数坐标下两点间距离为: " << distance(dx1, dy1, dx2, dy2) << endl;
return 0;
}
```
代码解析:
1. 通过函数重载的方式定义了两个名字相同的函数,分别用于计算整型数坐标下两点间距离和双精度数坐标下两点间距离。
2. 在函数的参数列表中,通过设置默认参数的方式,实现了不输入第二个点坐标时默认为原点的功能。
3. 在主函数中,先输入第一个点的坐标,再根据是否输入第二个点坐标来进行相应的计算和输出。
阅读全文