我不明白这段代码有什么问题?

时间:2019-04-25 13:48:30

标签: c

此代码有问题。当我写(1,1)和(1,20)之类的坐标时,它给了我错误的答案,如-1.IND00。此代码的问题出在我的问题上:

b。编写一个C程序,允许在直角坐标系中输入任意两个点,并计算并显示它们之间的距离。要计算距离,请编写一个名为distanceBetweenTwoPoints或DBTwoPoints的函数,该函数接受两个点(x1,y1)和(x2,y2)的浮点坐标,并计算这两个点之间的距离d,以返回到调用函数。 (10分)提示:两点之间的距离定义为

float distance(int x1,int y1,int x2,int y2){
float result;
result=sqrt((pow((x2-x1),2))-(pow((y2-y1),2)));
return result;

}
int main () {

int x1,y1,x2,y2;

printf("enter your x1,y1");
scanf("%d%d",&x1,&y1);
printf("enter your x2,y2");
scanf("%d%d",&x2,&y2);

printf("result is %f",distance(x1,y1,x2,y2));

return 0;
}


1 个答案:

答案 0 :(得分:1)

我想这是由于笛卡尔计算中的减法。

应该是一个加法(想像它是毕达哥拉斯定理):

result=sqrt((pow((x2-x1),2))+(pow((y2-y1),2)));