簡體   English   中英

找出C中兩點之間的距離

[英]Finding the Distance Between Two Points in C

我想計算兩個點之間的距離,但是我需要通過使用main函數來完成。 我在嘗試確保我的程序返回正確的值時遇到了一些困難。 我已將我的代碼附加到此,因此,如果有人可以幫助糾正我可能出錯的部分,我將不勝感激。 (注意:我對C還是很陌生,因此在理解某些內容時可能需要一些其他幫助。)

#include <stdio.h>
double distance(double x1, double y1, double x2, double y2)
{
    double square_difference_x = (x2 - x1) * (x2 - x1);
    double square_difference_y = (y2 - y1) * (y2 - y1);
    double sum = square_difference_x + square_difference_y;
    double z = 0.00001;
    for (double i = 0; i < sum; i = i + z)
    {
        if (i * i == sum)
        {
            return i;
        }
    }
}

int main(void)
{
    double a = 1.0, b = 2.0, c = 4.0, d = 6.0;
    double dis;
    dis = distance(a, b, c, d);
    printf("The distance of the points (%lf, %lf) and (%lf, %lf) is %lf\n",  a,b,c,d,dis);

    return 0;
}

我感覺我的問題出在主函數的return選項上,盡管我不確定如何解決這個問題。 `

這種方式更好,更有效的解決方案。

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

double distance(double x1, double y1, double x2, double y2)
{
    double square_difference_x = (x2 - x1) * (x2 - x1);
    double square_difference_y = (y2 - y1) * (y2 - y1);
    double sum = square_difference_x + square_difference_y;
    double value = sqrt(sum);
    return value;
}

這只是對Weather Vane關於使用斜邊的評論的擴展。

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


typedef struct
{
    double x, y;
} Point;

typedef struct
{
    Point a,b;
} Line;


double length( Line line )
{
    return( hypot(line.b.x - line.a.x, line.b.y - line.a.y) );
} 


int main(int argc, char *argv[])
{
    Line line = { {4,0},{0,3} };

    printf("Line length = %lf\n", length(line));
    return( 0 );
}

這顯示了眾所周知的3,4,5三角形。 gcc xxx.c -lm編譯

#include <iostream>
#include <math.h>
using namespace std;

int main() {
    int t,i,a,b,c,d,x,y;
    double r;
    cin>>t;
    for(i=0;i<t;i++)
    {
        cin>>a>>b>>c>>d;
        x=abs(a-c);
        y=abs(b-d);

        r=sqrt((x*x)+(y*y));
        if(r-floor(r)>0.500000)
        cout<<ceil(r)<<endl;
        else
        cout<<floor(r)<<endl;
    }
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM