Ⅰ 如何用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) );
}
(1)c語言求最大的距離擴展閱讀:
C語言編寫注意事項:
1、所有自定義變數必須聲明才能使用。
2、每行只書寫一條語句, 在運算符兩邊加上一個空格, 便於閱讀。
3、整數除法將自動舍位, 不會進行四捨五入的操作。
4、for(初始化部分;條件部分;增長部分) - 比while 更適用於初始化和增長步長都是單條語句情況下。
5、使用#define 名字 替換文本 對部分"幻數" 賦予意義便於閱讀 #define結尾不需要「;」號結束。
Ⅱ 用C語言編寫一個程序,求兩點之間的距離
#include<stdio.h>
#include<math.h>
int main()
{
double x1,y1,x2,y2,distance;
printf("請輸入第一個點的坐標:\nx1=");
scanf("%lf",&x1);
printf("y1=");
scanf("%lf",&y1);
printf("請輸入第二個點的坐標:\nx2=");
scanf("%lf",&x2);
printf("y2=");
scanf("%lf",&y2);
distance=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
printf("這兩點間的距離為:%lf\n",distance);
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語言求兩點間的距離
定義一個二維數組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 <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);
}
(5)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語言計算兩點間距離方法是什麼
Problem Description
輸入兩點坐標(X1,Y1),(X2,Y2),計算並輸出兩點間的距離。
Input
輸入數據有多組,每組佔一行,由4個實數組成,分別表示x1,y1,x2,y2,數據之間用空格隔開。
Output
對於每組輸入數據,輸出一行,結果保留兩位小數。
#include<stdio.h>
#include<math.h>
void main()
{int X1,X2,Y1,Y2;<br>double d;<br>printf("%d %d %d %d ",X1,Y1,X2,Y2);
<br>while(scanf("%d %d %d %d ",&X1,&Y1,&X2,&Y2)!=EOF)
<br>while(1)<br>{d=sqrt((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2));<br>printf("%.2f ",d);
Ⅶ 編寫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);
}
Ⅷ 求平面n個點間的最大距離 c語言數組
具體代碼如下(仔細看下應該能明白):
/*輸入n個點,求平面上所有各點之間的最長距離,要求定義和調用函數計算距離*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
typedefstructpoint
{
doublex;
doubley;
}point;
doublecalculate_distance(point*a,point*b)
{
doublei=a->x-b->x;
doublej=a->y-b->y;
doublek=pow(i,2)+pow(j,2);
returnsqrt(k);
}
voidmain()
{
inti=0;
intj=0;
intn=0;
doubledistance=0;
doublemax_distance=0;
printf("Entern:");
scanf("%d",&n);
point*store_point=NULL;
store_point=(point*)malloc(n*sizeof(point));
point*i_point=store_point;
printf("inputx,y ");
for(i=0;i<n;i++)
{
scanf("%lf%lf",&(i_point->x),&(i_point->y));
i_point++;
}
i_point=store_point;
for(i=0;i<n;i++)
{
for(j=1;j<n;j++)
{
distance=calculate_distance((i_point+i),(i_point+j));
if(distance>max_distance)
{
max_distance=distance;
}
}
}
free(store_point);
store_point=i_point=NULL;
printf("MaxDistance=%lf ",max_distance);
}