用C語言計算兩點之間距離的參考代碼:
創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)遷西,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
#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、整數(shù)除法將自動舍位, 不會進(jìn)行四舍五入的操作。
4、for(初始化部分;條件部分;增長部分) - 比while 更適用于初始化和增長步長都是單條語句情況下。
5、使用?#define 名字 替換文本 對部分"幻數(shù)" 賦予意義便于閱讀 #define結(jié)尾不需要“;”號結(jié)束。
#include?stdio.h
#include?math.h
int?main?(void)
{
float?x1,x2,y1,y2,i;
printf?("請依次輸入X1,X2,Y1,Y2的值!\n");
scanf?("%f,%f,%f,%f",x1,x2,y1,%y2);?
i=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf?("兩點間的距離為:%g",i);
return?0;
}
改下flength函數(shù):
float flength(int x1,int y1,int x2,int y2)
{
float length;
length=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
return length;
}
#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、算術(shù)表達(dá)式
用算術(shù)運算符將數(shù)據(jù)連接起來的式子,稱為“算術(shù)表達(dá)式”。比如a + b、10 * 5等。如果表達(dá)式比較復(fù)雜的話,那么就要注意一下它的運算順序。表達(dá)式的運算順序是按照運算符的結(jié)合方向和優(yōu)先級進(jìn)行的。
2、結(jié)合方向
算術(shù)運算符的結(jié)合方向是從左到右。例如表達(dá)式2+3+4,先計算2+3。
3、 優(yōu)先級
優(yōu)先級越高,就越先進(jìn)行運算,當(dāng)優(yōu)先級相同時,參照結(jié)合方向。下面是算術(shù)運算符的優(yōu)先級排序:
負(fù)值運算符(-)??乘(*)、除(/)、模(%)運算符??加(+)、減(-)運算符
例如表達(dá)式4+5*8/-2的計算順序為:-、*、/、+,最后的結(jié)果是-16
4、小括號
如果需要先計算優(yōu)先級低的可以使用小括號()括住,小括號的優(yōu)先級是最高的!
例如4+5*8-2默認(rèn)的計算順序是:*、+、-
如果想先執(zhí)行加法運算,就可以這樣寫:(4+5)*8-2,最后的結(jié)果都是不一樣的。
二、關(guān)系運算符的使用注意
1、關(guān)系運算符中==、!=的優(yōu)先級相等,、=、、=的優(yōu)先級相等,且前者的優(yōu)先級低于后者
例如2==31 :先算31,條件成立,結(jié)果為1。再計算2==1,條件不成立,結(jié)果為0。因此2==31的結(jié)果為0。
2、關(guān)系運算符的結(jié)合方向為“從左往右”
例如432 :先算43,條件成立,結(jié)果為1。再與2比較,即12,條件不成立,結(jié)果為0。因此432的結(jié)果為0。
3、關(guān)系運算符的優(yōu)先級小于算術(shù)運算符
例如3+48-2 :先計算3+4,結(jié)果為7。再計算8-2,結(jié)果為6。最后計算76,條件成立,結(jié)果為1。因此3+48-2的結(jié)果為1。
可以運行啊。你把scanf("%lf,%lf",x1,y1);里么的逗號改成空格scanf("%lf %lf",x1,y1);
輸入兩點坐標(biāo)(X1,Y1),(X2,Y2),計算并輸出兩點間的距離。
輸入數(shù)據(jù)有多組,每組占一行,由4個實數(shù)組成,分別表示x1,y1,x2,y2,數(shù)據(jù)之間用空格隔開。
#includelt;stdio.hgt;
#includelt;math.hgt;
void main()
{
float x1,x2,y1,y2;
printf("請輸入一組數(shù)據(jù):");
while(~scanf("%f%f%f%f",x1,y1,x2,y2))//開始讀取輸入的數(shù),知道文件結(jié)束。
{
printf("兩點間的距離為:%.2f\n",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
printf("請輸入一組數(shù)據(jù):");
}
}
擴展資料:
c語言基本運算
一:算術(shù)運算符
算術(shù)運算符非常地簡單,就是小學(xué)數(shù)學(xué)里面的一些加減乘除操作。不過呢,還是有一些語法細(xì)節(jié)需要注意的。
一、加法運算符+
int a=10;
(此處空一行)
int b=a+5;
在第3行利用加法運算符+進(jìn)行了加法運算,再將和賦值給了變量b,最終變量b的值是15
二、減法運算符或負(fù)值運算符-
int b=10-5;
(此處空一行)
int a=-10;
1、在第1行利用減法運算符-進(jìn)行了減法運算,再將差賦值給了變量b,最終變量b的值是5
2、在第3行中,這個-并不是什么減法運算符,而算是一個負(fù)值運算符,-10代表的是負(fù)十
三、乘法運算符*
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);
注意:除法運算符并不是÷,而是一個正斜杠/