代码生成(用C++写一个获取多个地理坐标点的中心点程序)
时间: 2023-11-21 11:06:06 浏览: 97
C 代码 计算内部的网格点 用户指定的 2D 半径和中心的圆盘, 使用 gnuplot() 创建网格的图像.rar
以下是一个获取多个地理坐标点的中心点的C程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct Point {
double lat;
double lon;
};
struct Point get_center(struct Point *points, int n);
int main() {
int n;
printf("请输入点的数量:");
scanf("%d", &n);
struct Point *points = (struct Point*)malloc(n * sizeof(struct Point));
printf("请输入%d个点的经纬度坐标(以逗号分隔):\n", n);
for (int i = 0; i < n; i++) {
scanf("%lf,%lf", &points[i].lat, &points[i].lon);
}
struct Point center = get_center(points, n);
printf("中心点坐标:(%lf,%lf)\n", center.lat, center.lon);
free(points);
return 0;
}
struct Point get_center(struct Point *points, int n) {
double lat_sum = 0;
double lon_sum = 0;
for (int i = 0; i < n; i++) {
lat_sum += points[i].lat;
lon_sum += points[i].lon;
}
double lat_avg = lat_sum / n;
double lon_avg = lon_sum / n;
struct Point center = { lat_avg, lon_avg };
return center;
}
```
该程序使用了一个结构体 `Point` 来表示一个地理坐标点,包含经度和纬度两个成员变量。通过用户输入点的数量和经纬度坐标,程序创建了一个点数组 `points`,并通过 `get_center()` 函数计算出这些点的中心点坐标。在计算中心点时,程序遍历了所有点的经纬度坐标,计算出它们的平均值,作为中心点坐标的经纬度。最后,程序输出中心点坐标。
阅读全文