资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

c语言中求距离的函数,c语言用函数求两点之间的距离

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

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

成都创新互联公司是一家专注于成都做网站、成都网站设计与策划设计,宝坻网站建设哪家好?成都创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:宝坻等地区。宝坻做网站价格咨询:18980820575

#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语言计算两点间的距离

#include math.h

#include stdio.h

void main()

{

float x1, y1, x2, y2;

float d;

printf("请输入x1,y1,x2,y2,用空格隔开:\n");

scanf("%f %f %f %f", x1, y1, x2, y2);

d = sqrtf((x2 - x1) * (x2 - x1) +(y2 - y1) * (y2 - y1));

printf("两点间的距离为%.2f", d);

}

扩展资料:

c语言的基本运算的注意事项

一、运算顺序

1、算术表达式

用算术运算符将数据连接起来的式子,称为“算术表达式”。比如a + b、10 * 5等。如果表达式比较复杂的话,那么就要注意一下它的运算顺序。表达式的运算顺序是按照运算符的结合方向和优先级进行的。

2、结合方向

算术运算符的结合方向是从左到右。例如表达式2+3+4,先计算2+3。

3、 优先级

优先级越高,就越先进行运算,当优先级相同时,参照结合方向。下面是算术运算符的优先级排序:

负值运算符(-)  乘(*)、除(/)、模(%)运算符  加(+)、减(-)运算符

例如表达式4+5*8/-2的计算顺序为:-、*、/、+,最后的结果是-16

4、小括号

如果需要先计算优先级低的可以使用小括号()括住,小括号的优先级是最高的!

例如4+5*8-2默认的计算顺序是:*、+、-

如果想先执行加法运算,就可以这样写:(4+5)*8-2,最后的结果都是不一样的。

二、关系运算符的使用注意

1、关系运算符中==、!=的优先级相等,、=、、=的优先级相等,且前者的优先级低于后者

例如2==31 :先算31,条件成立,结果为1。再计算2==1,条件不成立,结果为0。因此2==31的结果为0。

2、关系运算符的结合方向为“从左往右”

例如432 :先算43,条件成立,结果为1。再与2比较,即12,条件不成立,结果为0。因此432的结果为0。

3、关系运算符的优先级小于算术运算符

例如3+48-2 :先计算3+4,结果为7。再计算8-2,结果为6。最后计算76,条件成立,结果为1。因此3+48-2的结果为1。

如何用C语言计算两点之间距离

用C语言计算两点之间距离的参考代码:

#include stdio.h

#include stdlib.h

#include "math.h"

typedef struct point {

double x;

double y;

}point;

point array[30001];

double distance(point a,point b);

int main(int argc, char *argv[])

{

while(1){

int n,i,j,count;

double maxdis,temp;

scanf("%d",n);

for(i = 0;in;i++){

  scanf("%f %f",array[i].x,array[i].y);   

}

for(i = 0;in;i++){

  //printf("%d %d\n",array[i].x,array[i].y);

  //printf("dis:%.2f\n",distance(array[0],array[i]));

}

maxdis = 0.0;

for(i = 0;in;i++){

  for(j = i;jn;j++){

      if(distance((array[i]),(array[j])) maxdis ){

          //printf("maxdis = :%.2f\n",distance((array[i]),(array[j])));

          maxdis =distance((array[i]),(array[j]));

      }

  }

}

printf("%.2f",maxdis);

}

system("pause");

return 0;

}

//计算x y之间距离

double distance(point a,point b){

return sqrt(    (a.x - b.x)*(a.x - b.x)  +   (a.y -b.y)*(a.y -b.y)  );

}

扩展资料:

C语言编写注意事项:

1、所有自定义变量 必须声明才能使用。

2、每行只书写一条语句, 在运算符两边加上一个空格, 便于阅读。

3、整数除法将自动舍位, 不会进行四舍五入的操作。

4、for(初始化部分;条件部分;增长部分) - 比while 更适用于初始化和增长步长都是单条语句情况下。

5、使用 #define 名字 替换文本 对部分"幻数" 赋予意义便于阅读 #define结尾不需要“;”号结束。

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

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

输入数据有多组,每组占一行,由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语言中 如何用函数的调用求两点间的距离?

改下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语言中求距离的函数,c语言用函数求两点之间的距离
URL标题:http://cdkjz.cn/article/hsigcj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220