我想计算两点之间的距离,但我需要使用main函数来完成。我在尝试确保我的程序返回正确的值时遇到了一些困难。我已将我的代码附加到此,所以如果有人可以帮助纠正我可能犯错误的部分,我将不胜感激。 (注意:我对C很新,所以我可能需要一些额外的帮助来理解一些事情。)
nlargest(n, your2DList, key=lambda x: x[-1])
我觉得我的问题是在主函数中使用#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;
}
选项发生的,尽管如果有的话我不太确定如何解决这个问题。
`
答案 0 :(得分:3)
这种方式更好,更有效。
#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;
}
答案 1 :(得分:1)
这只是扩展了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
答案 2 :(得分:0)
#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;
}