输人两组数据x1、yī 和x:y,分别代表平面直角坐标系中的两个点,求此两点间的距离。 c语言
时间: 2024-10-12 19:07:33 浏览: 27
在C语言中,计算两个二维坐标点(x1, y1)和(x2, y2)之间的欧几里得距离可以使用下面的公式:
```c
#include <math.h> // 包含数学库,用于sqrt函数
double distance(double x1, double y1, double x2, double y2) {
// 欧氏距离公式: sqrt((x2-x1)^2 + (y2-y1)^2)
double dx = x2 - x1;
double dy = y2 - y1;
return sqrt(dx * dx + dy * dy);
}
// 如果给定的是x1, y1, x:y的形式,需要先解析输入
void parse_coordinates(char* input, double* x1, double* y1) {
char* delimiter = ":";
char* point = strtok(input, delimiter);
*x1 = atof(point); // 将字符串转换为浮点数
point = strtok(NULL, delimiter);
*y1 = atof(point);
}
int main() {
double x1, y1, x2, y2;
char coordinates[] = "x1:y1, x2:y2"; // 示例输入
parse_coordinates(coordinates, &x1, &y1); // 解析第一个点
parse_coordinates(strtok(NULL, ","), &x2, &y2); // 解析第二个点
double dist = distance(x1, y1, x2, y2);
printf("两点间距离为: %.2f\n", dist);
return 0;
}
```
在这个示例中,`parse_coordinates`函数负责将输入的坐标字符串分割成独立的数值,并将其赋值给对应的变量。`distance`函数则计算并返回两点之间的距离。
阅读全文