#include
#include
struct Point
{
double x, y;
};
/** Calculate the distance of two points. */
double distance(const struct Point *a, const struct Point *b)
{
return sqrt((a->x-b->x)*(a->x-b->x)+(a->y-b->y)*(a->y-b->y));
}
int main()
{
struct Point a, b;
printf("Please input the first point: ");
scanf("%lf%lf", &a.x, &a.y);
printf("Please input the second point: ");
scanf("%lf%lf", &b.x, &b.y);
printf("The distance of the two point is %f.\n", distance(&a, &b));
return 0;
}
说明:
1、distance() 函数的两个参数 const struct Point *a 和 b 使用了 const 修饰,是表示 a 和 b 在函数执行过程中不会被修改;这样即使函数体内部写错,修改了 a 和 b 的值,编译也不会通过。
2、对 double,scanf 用 %lf,printf 用 %f。
以上。
#include "stdio.h"
#include "math.h"
struct Point
{
double x;
double y;
}p[2];
void main()
{
double d;
printf("输入第1个点坐标x,y\n");
scanf("%lf%lf",&p[0].x,&p[0].y);
printf("输入第2个点坐标x,y\n");
scanf("%lf%lf",&p[1].x,&p[1].y);
d=sqrt((p[0].x-p[1].x)*(p[0].x-p[1].x)+(p[0].y-p[1].y)*(p[0].y-p[1].y));
printf("距离=%g",d);
}
#include
#include
double Distance(double a[],double b[])
{
return sqrt( (b[1]-a[1])*(b[1]-a[1])+(b[0]-a[0])*(b[0]-a[0]) );
}
void main()
{
double a[2],b[2];//二维数组表示2个点
double result;
printf("请输入第一个点的坐标\n");
scanf("%lf%lf",&a[0],&a[1]);
printf("请输入第二个点的坐标\n");
scanf("%lf%lf",&b[0],&b[1]);
result=Distance( a, b);
printf("距离为%f\n",result
}希望可以帮助到你