c语言中函数编写距离 c语言距离相关算法

C语言编程问题:使用函数计算两点间的距离。

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

目前创新互联建站已为1000+的企业提供了网站建设、域名、网络空间、网站托管运营、企业网站设计、绛县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

#includelt;stdio.hgt;

#includelt;math.hgt;

void main()

{

float x1,x2,y1,y2;

printf("请输入一组数据:");

while(~scanf("%f%f%f%f",x1,y1,x2,y2))//开始读取输入的数,知道文件结束。

{

printf("两点间的距离为:%.2f\n",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));

printf("请输入一组数据:");

}

}

扩展资料:

c语言基本运算

一:算术运算符

算术运算符非常地简单,就是小学数学里面的一些加减乘除操作。不过呢,还是有一些语法细节需要注意的。

一、加法运算符+

int a=10;

(此处空一行)

int b=a+5;

在第3行利用加法运算符+进行了加法运算,再将和赋值给了变量b,最终变量b的值是15

二、减法运算符或负值运算符-

int b=10-5;

(此处空一行)

int a=-10;

1、在第1行利用减法运算符-进行了减法运算,再将差赋值给了变量b,最终变量b的值是5

2、在第3行中,这个-并不是什么减法运算符,而算是一个负值运算符,-10代表的是负十

三、乘法运算符*

int b=10*5;

注意:乘法运算符并不是x或者X,而是星号*。变量b最终的值是50。

四、除法运算符/

double a=10.0/4;

double b=10/4;

(此处空一行)

printf("a=%f,b=%f\n",a,b);

注意:除法运算符并不是÷,而是一个正斜杠/

用C语言编写一个程序:定义一个点的坐标,然后定义两个点,求这两个点间的距离。

#include stdio.h

#include math.h

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。

以上。

c语言:用函数求两点间距离【求大神帮忙看看哪里错了。。

额,貌似你就没什么对的地方。首先,在main函数中,int xyz(int l),这个不能这样写啊。声明也不是在主函数中声明啊。第二,这个int l?你确定是int型的?x1,x2,y1,y2都可以是int 型的,唯独l不可以,你查下sqrt()的返回值,是float型的。第三,x1,x2,y1,y2在哪里赋值了?没地方赋值怎么计算啊,你的xyz的原型应该写成 float(int x1,int x2,int y1,int y2),这样才能传值。第四,int i是形参,不能做返回值的,这涉及到内存模型问题

在C语言中 如何用函数的调用求两点间的距离?

改下flength函数:

float flength(int x1,int y1,int x2,int y2)

{

float length;

length=sqrt(pow((x1-x2),2)+pow((y1-y2),2));

return length;

}

c语言 求空间中最远的两个点距离(函数参数用指针)

你这个题的数据量很小(n10),所以完全可以暴力求解

#include stdio.h

#include math.h

typedef struct point

{

double x, y, z;

}Point;

double GetDistance(const Point *a, const Point *b)

{

return sqrt( (a-x-b-x)*(a-x-b-x)+

(a-y-b-y)*(a-y-b-y)+

(a-z-b-z)*(a-z-b-z) );

}

int main()

{

int i, j, n;

Point p[10];

double res = 0, distance = 0;

scanf("%d", n);    

for(i = 0; i  n; i++)

scanf("%lf %lf %lf", p[i].x, p[i].y, p[i].z);

for(i = 0; i  n-1; i++)

{

for(j = i+1; j  n; j++)

{

distance = GetDistance(p[i], p[j]);

res = distanceres ? distance:res;

}

}

printf("%.2lf\n", res);        

return 0;

}

在C语言中怎样定义一个函数为“distance”?

long

distance(point

a,

point

b)

{

long

d

=

0;

d

=

(long)sqrt((a.x-b.x)*(a.x-b.x)

+

(a.y-b.y)*(a.y-b.y));

return

d;

}

这个函数接受两个point类型的参数a和b,返回a和b之间类型是long的距离d。


本文标题:c语言中函数编写距离 c语言距离相关算法
网页网址:http://myzitong.com/article/hhiosj.html