當前位置:首頁 » 編程語言 » c語言用指針算二維空間點的距離
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言用指針算二維空間點的距離

發布時間: 2022-03-12 03:08:05

c語言編程問題:使用函數計算兩點間的距離。

輸入兩點坐標(X1,Y1),(X2,Y2),計算並輸出兩點間的距離。

輸入數據有多組,每組佔一行,由4個實數組成,分別表示x1,y1,x2,y2,數據之間用空格隔開。

#include<stdio.h>

#include<math.h>

void main()

{

float x1,x2,y1,y2;

printf("請輸入一組數據:");

while(~scanf("%f%f%f%f",&x1,&y1,&x2,&y2))//開始讀取輸入的數,知道文件結束。

{

printf("兩點間的距離為:%.2f ",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));

printf("請輸入一組數據:");

}

}

(1)c語言用指針算二維空間點的距離擴展閱讀:

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 ",a,b);

注意:除法運算符並不是÷,而是一個正斜杠/

⑵ 怎樣用C語言求兩點間的距離

定義一個二維數組Dist[2][10],假設有兩點a(2,3),b(5,6),將他們的坐標放入數組中Dist[0][0]=2;Dist[0][1]=5;Dist[1][0]=3;Dist[1][1]=6;
他們間的距離就是double x=(Dist[0][0]-Dist[0][1])*(Dist[0][0]-Dist[0][1])+(Dist[1][0]-Dist[1][1])*(Dist[1][0]-Dist[1][1]);
double distance = Math.sqrt(x);

⑶ 編寫C語言程序,計算任意兩點之間的距離

#include <stdio.h>
#include<math.h>
void main(){
double x1,x2,y1,y2,sum;
printf("請輸入A點的橫坐標:");
scanf("%2f",&x1);
printf("請輸入A點的縱坐標:");
scanf("%2f",&y1);
printf("請輸入B點的橫坐標:");
scanf("%2f",&x2);
printf("請輸入B點的縱坐標:");
scanf("%2f",&y2);
sum=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("點A(%2f,%2f)到點B(%2f,%2f)的距離是%2f",x1,y1,x2,y2,sum);
}

⑷ C語言題目:計算兩點間的距離

#include <math.h>

#include <stdio.h>

int main()

{

float x1, y1, x2, y2;

float d = 0;

while(scanf("%f%f%f%f",&x1,&y1,&x2,&y2)!=EOF)

{

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

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

}

return 0;

}

(4)c語言用指針算二維空間點的距離擴展閱讀:

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 ", a, b);

注意:除法運算符並不是÷,而是一個正斜杠 /

⑸ 程序設計用C語言求二維空間中兩點的中點

根據題意,算出2個坐標點的平均值就是中點坐標.
float是單浮點,你可以用int整數或者double雙浮點代替.
#include <stdio.h>
int main()
{
float x1, y1; //坐標一
float x2, y2; //坐標二
float xmid, ymid; //中點坐標
printf("請輸入第一個坐標,用逗號隔開:");
scanf("%f,%f", &x1, &y1);
printf("請輸入第二個坐標,用逗號隔開:");
scanf("%f,%f", &x2, &y2);
/*算出2個坐標平均值*/
xmid = (x1 + x2) / 2;
ymid = (y1 + y2) / 2;
printf("它們的中點坐標:%f,%f\n", xmid, ymid);
return 0;
}

⑹ c語言 求空間中最遠的兩個點距離(函數參數用指針)

你這個題的數據量很小(n<10),所以完全可以暴力求解

#include<stdio.h>
#include<math.h>

typedefstructpoint
{
doublex,y,z;
}Point;

doubleGetDistance(constPoint*a,constPoint*b)
{
returnsqrt((a->x-b->x)*(a->x-b->x)+
(a->y-b->y)*(a->y-b->y)+
(a->z-b->z)*(a->z-b->z));
}

intmain()
{
inti,j,n;
Pointp[10];
doubleres=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=distance>res?distance:res;
}
}
printf("%.2lf ",res);

return0;
}

⑺ 用c語言計算兩點間的距離

#include <math.h>

#include <stdio.h>

void main()

{

float x1, y1, x2, y2;

float d;

printf("請輸入x1,y1,x2,y2,用空格隔開: ");

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

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

printf("兩點間的距離為%.2f", d);

}

(7)c語言用指針算二維空間點的距離擴展閱讀:

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==3>1 :先算3>1,條件成立,結果為1。再計算2==1,條件不成立,結果為0。因此2==3>1的結果為0。

2、關系運算符的結合方向為「從左往右」

例如4>3>2 :先算4>3,條件成立,結果為1。再與2比較,即1>2,條件不成立,結果為0。因此4>3>2的結果為0。

3、關系運算符的優先順序小於算術運算符

例如3+4>8-2 :先計算3+4,結果為7。再計算8-2,結果為6。最後計算7>6,條件成立,結果為1。因此3+4>8-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;i<n;i++){

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

}

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

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

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

}

maxdis = 0.0;

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

for(j = i;j<n;j++){

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

//printf("maxdis = :%.2f ",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) );

}

(8)c語言用指針算二維空間點的距離擴展閱讀:

C語言編寫注意事項:

1、所有自定義變數必須聲明才能使用。

2、每行只書寫一條語句, 在運算符兩邊加上一個空格, 便於閱讀。

3、整數除法將自動舍位, 不會進行四捨五入的操作。

4、for(初始化部分;條件部分;增長部分) - 比while 更適用於初始化和增長步長都是單條語句情況下。

5、使用#define 名字 替換文本 對部分"幻數" 賦予意義便於閱讀 #define結尾不需要「;」號結束。

⑼ 求C語言程序:計算兩點間的距離

代碼如下:

#include<stdio.h>

#include<math.h>

struct point

{

double x;

double y;

};

struct point readPoint();

double distance(struct point p1,struct point p2);

int main(void)

{

struct point a,b;

double dis;

printf(" distance! ");

printf("please input the point(for example:1.0,2.0):");

a=readPoint();

printf(" please input the point(for example:1.0,2.0):");

b=readPoint();

dis=distance(a,b);

printf(" the distance is:%.2f ",dis);

return 0;

}

struct point readPoint()

{

struct point p;

scanf("%lf,%lf",&p.x,&p.y);

return p;

}

double distance(struct point p1,struct point p2)

{

double d;

d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));

return d;

}