用C语言写这道题。6-1 求两点间的距离(填空) 分数 5 作者 李祥 单位 湖北经济学院 定义如下点结构类型 typedef struct { double x, y; } POINT; 说明:x 和 y 分别为点的横坐标和纵坐标。 下面的程序输入两个点的坐标,求两点间的距离并输出。 #include <stdio.h> #include <math.h> typedef struct { double x, y; } POINT; int main() { POINT a, b; double s, p, q; scanf("%lf %lf", &a.x, &a.y); scanf("%lf %lf", &b.x, &b.y); /* 你提交的代码将被嵌在这里 */ printf("%g\n", s); return 0; }
时间: 2024-01-14 14:02:02 浏览: 95
您好!根据您的要求,我来为您提供一份用 C 语言编写的程序,实现求两点间的距离。代码如下:
```
#include <stdio.h>
#include <math.h>
typedef struct {
double x, y;
} POINT;
int main() {
POINT a, b;
double s, p, q;
scanf("%lf %lf", &a.x, &a.y);
scanf("%lf %lf", &b.x, &b.y);
// 计算两点间距离
p = b.x - a.x;
q = b.y - a.y;
s = sqrt(p*p + q*q);
printf("%g\n", s);
return 0;
}
```
程序中,我们使用 `typedef` 定义了一个 `POINT` 结构体类型,其中包含两个成员变量 `x` 和 `y`,分别代表点的横坐标和纵坐标。接着定义了两个 `POINT` 类型的变量 `a` 和 `b`,用于存储输入的两个点的坐标。
在计算两点间距离时,我们使用了勾股定理,即 $AB=\sqrt{(x_B-x_A)^2+(y_B-y_A)^2}$。将两点坐标代入公式中,即可得到两点间的距离。
最后,我们使用 `%g` 格式控制符输出距离结果。
希望我的回答能解决您的问题。如果还有什么不明白的地方,可以继续提问哦!
相关问题
6-1 求两点间的距离(填空) 分数 5 作者 李祥 单位 湖北经济学院 定义如下点结构类型 typedef struct { double x, y; } POINT; 说明:x 和 y 分别为点的横坐标和纵坐标。 下面的程序输入两个点的坐标,求两点间的距离并输出。
以下是代码实现:
```
#include <stdio.h>
#include <math.h>
typedef struct {
double x, y;
} POINT;
int main() {
POINT p1, p2;
double distance;
printf("请输入第一个点的坐标(x1, y1):");
scanf("%lf %lf", &p1.x, &p1.y);
printf("请输入第二个点的坐标(x2, y2):");
scanf("%lf %lf", &p2.x, &p2.y);
distance = sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2));
printf("两点间的距离为:%lf\n", distance);
return 0;
}
```
输入格式为:
```
请输入第一个点的坐标(x1, y1): 1 2
请输入第二个点的坐标(x2, y2): 4 6
```
输出格式为:
```
两点间的距离为:5.000000
```
注意,这里使用了数学库中的 sqrt 和 pow 函数,需要在编译时加上 -lm 参数来链接数学库。
6-1 求两点间的距离(填空) 分数 5 全屏浏览题目 切换布局 作者 李祥 单位 湖北经济学院 定义如下点结构类型 typedef struct { double x, y; } POINT; 说明:x 和 y 分别为点的横坐标和纵坐标。 下面的程序输入两个点的坐标,求两点间的距离并输出。 #include <stdio.h> #include <math.h> typedef struct { double x, y; } POINT; int main() { POINT a, b; double s, p, q; scanf("%lf %lf", &a.x, &a.y); scanf("%lf %lf", &b.x, &b.y); /* 你提交的代码将被嵌在这里 */ printf("%g\n", s); return 0; }
可以使用勾股定理求解两点间的距离,具体实现如下:
```c
p = a.x - b.x;
q = a.y - b.y;
s = sqrt(p * p + q * q);
```
完整代码如下:
```c
#include <stdio.h>
#include <math.h>
typedef struct {
double x, y;
} POINT;
int main() {
POINT a, b;
double s, p, q;
scanf("%lf %lf", &a.x, &a.y);
scanf("%lf %lf", &b.x, &b.y);
p = a.x - b.x;
q = a.y - b.y;
s = sqrt(p * p + q * q);
printf("%g\n", s);
return 0;
}
```
注意:在输出距离时,可以使用 `%g` 格式符,它可以自动根据数值的大小选择使用 `%f` 或 `%e`。
阅读全文