用C語(yǔ)言計(jì)算兩點(diǎn)之間距離的參考代碼:
固始網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
#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;
}
//計(jì)算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)? );
}
擴(kuò)展資料:
C語(yǔ)言編寫注意事項(xiàng):
1、所有自定義變量?必須聲明才能使用。
2、每行只書寫一條語(yǔ)句, 在運(yùn)算符兩邊加上一個(gè)空格, 便于閱讀。
3、整數(shù)除法將自動(dòng)舍位, 不會(huì)進(jìn)行四舍五入的操作。
4、for(初始化部分;條件部分;增長(zhǎng)部分) - 比while 更適用于初始化和增長(zhǎng)步長(zhǎng)都是單條語(yǔ)句情況下。
5、使用?#define 名字 替換文本 對(duì)部分"幻數(shù)" 賦予意義便于閱讀 #define結(jié)尾不需要“;”號(hào)結(jié)束。
輸入兩點(diǎn)坐標(biāo)(X1,Y1),(X2,Y2),計(jì)算并輸出兩點(diǎn)間的距離。
輸入數(shù)據(jù)有多組,每組占一行,由4個(gè)實(shí)數(shù)組成,分別表示x1,y1,x2,y2,數(shù)據(jù)之間用空格隔開。
#includelt;stdio.hgt;
#includelt;math.hgt;
void main()
{
float x1,x2,y1,y2;
printf("請(qǐng)輸入一組數(shù)據(jù):");
while(~scanf("%f%f%f%f",x1,y1,x2,y2))//開始讀取輸入的數(shù),知道文件結(jié)束。
{
printf("兩點(diǎn)間的距離為:%.2f\n",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
printf("請(qǐng)輸入一組數(shù)據(jù):");
}
}
擴(kuò)展資料:
c語(yǔ)言基本運(yùn)算
一:算術(shù)運(yùn)算符
算術(shù)運(yùn)算符非常地簡(jiǎn)單,就是小學(xué)數(shù)學(xué)里面的一些加減乘除操作。不過呢,還是有一些語(yǔ)法細(xì)節(jié)需要注意的。
一、加法運(yùn)算符+
int a=10;
(此處空一行)
int b=a+5;
在第3行利用加法運(yùn)算符+進(jìn)行了加法運(yùn)算,再將和賦值給了變量b,最終變量b的值是15
二、減法運(yùn)算符或負(fù)值運(yùn)算符-
int b=10-5;
(此處空一行)
int a=-10;
1、在第1行利用減法運(yùn)算符-進(jìn)行了減法運(yùn)算,再將差賦值給了變量b,最終變量b的值是5
2、在第3行中,這個(gè)-并不是什么減法運(yùn)算符,而算是一個(gè)負(fù)值運(yùn)算符,-10代表的是負(fù)十
三、乘法運(yùn)算符*
int b=10*5;
注意:乘法運(yùn)算符并不是x或者X,而是星號(hào)*。變量b最終的值是50。
四、除法運(yùn)算符/
double a=10.0/4;
double b=10/4;
(此處空一行)
printf("a=%f,b=%f\n",a,b);
注意:除法運(yùn)算符并不是÷,而是一個(gè)正斜杠/
你這個(gè)題的數(shù)據(jù)量很小(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;
}