两点见距离公式编程c++
时间: 2023-05-29 21:02:18 浏览: 90
下面是两点之间距离的C程序代码:
```
#include <stdio.h>
#include <math.h>
int main()
{
double x1, y1, x2, y2, distance;
//输入两点坐标
printf("Enter the coordinates of first point: ");
scanf("%lf %lf",&x1, &y1);
printf("Enter the coordinates of second point: ");
scanf("%lf %lf",&x2, &y2);
//根据公式计算两点距离
distance = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
//输出结果
printf("The distance between the two points is: %.2lf\n",distance);
return 0;
}
```
在这个程序中,我们用前两个scanf语句输入用户输入的两个点的坐标。接下来,我们使用公式 sqrt((x2-x1)^2+(y2-y1)^2)来计算两点之间的距离。最后,结果将被打印出来。
相关问题
输入两地的经纬度,用Haversine公式计算两地距离(用C++编程)
在C++中,我们可以使用Haversine公式来计算地球上两点之间的大圆距离。这个公式基于球面三角学,考虑了地球不是一个完美的圆球而是一个椭球体的影响。以下是一个简单的Haversine函数示例:
```cpp
#include <cmath>
const double EARTH_RADIUS_KM = 6371.0; // 地球平均半径,单位公里
double toRadians(double degrees) {
return degrees * M_PI / 180.0;
}
double haversine(double lat1, double lon1, double lat2, double lon2) {
double dLat = toRadians(lat2 - lat1);
double dLon = toRadians(lon2 - lon1);
double a = pow(sin(dLat / 2), 2) + cos(toRadians(lat1)) * cos(toRadians(lat2)) * pow(sin(dLon / 2), 2);
double c = 2 * atan2(sqrt(a), sqrt(1 - a));
return EARTH_RADIUS_KM * c;
}
int main() {
double lat1, lon1, lat2, lon2;
// 获取用户输入的两个地点的经纬度
// ...
double distance = haversine(lat1, lon1, lat2, lon2);
std::cout << "The distance between the two points is approximately: " << distance << " kilometers." << std::endl;
return 0;
}
```
在这个例子中,你需要获取用户输入的经纬度,然后调用haversine函数计算距离。注意Haversine公式假设地球是个理想的球体,对于真实的地理位置精确度可能有限。
如何用C++编程计算给定n个二维坐标的点之间所有可能的距离?
在C++中,计算给定n个二维坐标的点之间的所有可能距离通常会涉及到两点间距离公式,即sqrt((x2-x1)^2 + (y2-y1)^2)。为了计算所有点对之间的距离,你可以创建一个函数来计算单个距离,然后使用一个循环结构(如for或while)来遍历所有点,并对每一对点调用该函数。
下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
#include <cmath> // 引入math库用于sqrt函数
// 定义计算两个二维坐标点之间距离的函数
double distance(const std::pair<int, int>& p1, const std::pair<int, int>& p2) {
double dx = p2.first - p1.first;
double dy = p2.second - p1.second;
return std::sqrt(dx * dx + dy * dy);
}
int main() {
int n; // 点的数量
std::cout << "请输入点的数量: ";
std::cin >> n;
// 假设points是一个二维向量,存储所有的点
std::vector<std::pair<int, int>> points(n);
for (int i = 0; i < n; ++i) {
std::cout << "请输入第" << (i+1) << "个点的坐标 (x y): ";
std::cin >> points[i].first >> points[i].second;
}
// 计算并打印所有点对之间的距离
for (int i = 0; i < n; ++i) {
for (int j = i+1; j < n; ++j) {
double dist = distance(points[i], points[j]);
std::cout << "点(" << points[i].first << ", " << points[i].second << ") 和 (" << points[j].first << ", " << points[j].second << ") 之间的距离是: " << dist << "\n";
}
}
return 0;
}
```
在这个代码中,我们首先读取点的数量和每个点的坐标,然后使用两层嵌套循环遍历所有可能的点对,并计算它们之间的距离。
阅读全文