C ++ Sqrt函数

问题描述 投票:1回答:6

当我编译程序时,它似乎没有执行我的公式,所以我不知道我在做什么错误的帮助,谢谢

int main ()
  {
int distance, Xvalue, Yvalue;
double x1,y1,x2,y2;

cout << "\n Please enter X1 value: ";
cin  >> x1;
cout << " Please enter X2 value: ";
cin  >> x2;
cout << "\n Please enter Y1 value: ";
cin  >> y1;
cout << " Please enter Y2 value: ";
cin  >> y2;
    Xvalue = (x1 - x2);
    Yvalue = (y1 - y2);
distance = sqrt(Xvalue * Xvalue + Yvalue * Yvalue);

cout << "This is the distance between the two points" <<distance<< 


   cout << endl << endl;
   system ("pause");
  return 0;
 }
c++ function sqrt
6个回答
2
投票

将距离,Xvalue和Yvalue更改为双倍


1
投票

我很确定这可能是您的问题的一部分:

Xvalue = (x1 - x2);
Yvalue = (y1 - y1);

它可能应该是:

Xvalue = (x1 - x2);
Yvalue = (y1 - y2);

1
投票

双精度变量的差可以是double,并且您的Yvalue始终计算为zero

实际上,您的公式本身是错误的。

Distance Formula: Given the two points (x1, y1) and (x2, y2), 

这些点之间的距离由公式给出:

d = sqrt((x2-x1)^2 + (y2-y1)^2)

请注意,您正在减去而不是相加平方。

double x1,y1,x2,y2,distance, Xvalue, Yvalue;
Xvalue = (x1 - x2);
Yvalue = (y1 - y2);
distance = sqrt(Xvalue * Xvalue + Yvalue * Yvalue);

1
投票

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


0
投票

第一个cout输入值,因此可以确定问题是否出在输入中

cout<<x1<<endl;
cout<<x2<<endl;
cout<<y1<<endl;
cout<<y2<<endl;

然后您要尝试退出...退出!

cout<<"this is the"<< distance << cout ... // cout again, is not very good!

尝试

cout<< "this is the"<< distance <<endl;
cout << endl << endl;

而且无论如何..除非出于特定原因需要那些“ int”,否则最好具有双精度。 (您仍然可以稍后使用“ floor(value)”将它们四舍五入))>


0
投票

包括

© www.soinside.com 2019 - 2024. All rights reserved.