C語言求空間兩點(diǎn)之間的距離
定義一個(gè)表示三維空間點(diǎn)坐標(biāo)的結(jié)構(gòu)類型,通過函數(shù)求空間上任意兩點(diǎn)之間的距離。
算法思想
空間內(nèi)任意點(diǎn)的坐標(biāo)有三個(gè),分別為 x 軸方向、y 軸方向、z 軸方向,設(shè)定結(jié)構(gòu)體 point,包括三個(gè)成員 x、y、z,都為雙精度類型。
定義一個(gè)函數(shù) dist 用于計(jì)算空間上兩點(diǎn)的距離,函數(shù)返回值也為 double 類型,函數(shù)的參數(shù)為結(jié)構(gòu)體 point 的兩個(gè)變量。
程序代碼
#include <stdio.h>
#include <math.h>
struct point
{
float x;
float y;
float z;
};
float dist(struct point p1,struct point p2)
{
float x,y,z;
float d;
x=fabs(p1.x-p2.x);
y=fabs(p1.y-p2.y);
z=fabs(p1.z-p2.z);
d=sqrt(x*x+y*y+z*z);
return d;
}
int main()
{
struct point p1,p2;
printf("Enter point1:");
scanf("%f,%f,%f",&p1.x,&p1.y,&p1.z);
printf("Enter point2:");
scanf("%f,%f,%f",&p2.x,&p2.y,&p2.z);
printf("distance: %f\n",dist(p1,p2));
return 0;
}</math.h></stdio.h>
調(diào)試運(yùn)行結(jié)果
空間上兩點(diǎn)的坐標(biāo)分別為 (1.26,3.54,4.6),(3.21,3.54,7.2),通過程序運(yùn)行得到該兩點(diǎn)之間的距離為 3.25,運(yùn)行結(jié)果如下所示:
Enter point1:1.26,3.54,4.6
Enter point2:3.21,3.54,7.2
distance: 3.250000
作者:大學(xué)生新聞網(wǎng) 來源:大學(xué)生新聞網(wǎng)
發(fā)布時(shí)間:2025-03-10 閱讀:
- C語言日期函數(shù),日期處理函數(shù)
- 定義一個(gè)表示日期的結(jié)構(gòu)體類型,再分別定義函數(shù)完成下列功能:計(jì)算某一天是對(duì)應(yīng)年的第幾天,這一年一共多少天;計(jì)算兩個(gè)日期之間相隔的
- 03-10 關(guān)注:0
- C語言求空間兩點(diǎn)之間的距離
- 定義一個(gè)表示三維空間點(diǎn)坐標(biāo)的結(jié)構(gòu)類型,通過函數(shù)求空間上任意兩點(diǎn)之間的距離。
- 03-10 關(guān)注:0
- C語言求定積分
- 利用梯形法計(jì)算定積分
- 03-10 關(guān)注:0
- C語言三色旗問題
- 有一根繩子,上面有紅、白、藍(lán)三種顏色的旗子。
- 03-10 關(guān)注:0
- C語言整數(shù)逆序輸出
- 將一個(gè)從鍵盤輸入的整數(shù)存放到一個(gè)數(shù)組中,通過程序的運(yùn)行按照數(shù)組中的逆序輸出該整數(shù),利用遞歸的方法解決問題。
- 03-10 關(guān)注:0
- C語言約瑟夫環(huán)問題
- 編號(hào)為 1,2,3,…,n 的 n 個(gè)人圍坐一圈,任選一個(gè)正整數(shù) m 作為報(bào)數(shù)上限值,從第一個(gè)人開始按順時(shí)針方向報(bào)數(shù),報(bào)數(shù)到 m 時(shí)停止,報(bào)
- 03-10 關(guān)注:1
- C語言輸出等腰三角形
- 本實(shí)例要求從鍵盤輸入任意整數(shù) n,通過程序運(yùn)行輸出對(duì)應(yīng)高度為 n 的等腰三角形。
- 03-10 關(guān)注:0
- C語言字符串加密和解密算法
- 在本實(shí)例中要求設(shè)計(jì)一個(gè)加密和解密算法。在對(duì)一個(gè)指定的字符串加密之后,利用解密函數(shù)能夠?qū)γ芪慕饷埽@示明文信息。
- 03-09 關(guān)注:3