C++ Sqrt function

C++ Sqrt function

本文关键字:function Sqrt C++      更新时间:2023-10-16

当我编译我的程序时,它似乎没有执行我的公式,我不知道我做错了什么,帮助将不胜感激

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;
 }

将距离、X值和Y值更改为双精度

我很

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

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

它可能应该是:

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

精度变量的差值可能是一个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);

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

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

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)"将它们四舍五入)

include

包括

int main(void)

{ 浮点数 x1, x2, y1, y2, 距离;

printf("x 2 的值:");scanf("%f",&x2);

printf("x 1 的值:");scanf("%f",&x1);

printf("y2 的值:");scanf("%f",&y2);

printf("y1 的值:");scanf("%f",&y1);

距离 = sqrt(pow((x2-x1),2)+pow((y2-y1),2));printf("(X2,X1) 和 (Y2,Y1) 之间的距离是 %f", 距离);

返回 0;

}