[英]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.