1

当我编译我的程序时,它似乎没有执行我的公式我无法弄清楚我在做什么错误的帮助将不胜感激

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

6 回答 6

2

将距离、Xvalue 和 Yvalue 更改为双精度值

于 2013-01-23T01:53:30.983 回答
1

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

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

它可能应该是:

Xvalue = (x1 - x2);
Yvalue = (y1 - y2);
于 2013-01-23T01:37:41.700 回答
1

双变量的差异可以是 adouble并且您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);
于 2013-01-23T01:38:17.777 回答
1

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

于 2020-06-17T11:54:31.033 回答
0

第一个 cout 输入值,这样您就可以确定问题是否不在输入中

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

那么您正在尝试 cout... cout!

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

尝试

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

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

于 2013-01-23T01:54:11.153 回答
-1

包括

包括

诠释主要(无效)

{ 浮动 x1,x2,y1,y2,距离;

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

printf("x1 的值:"); 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", Distance);

返回0;

}

于 2020-06-17T13:23:10.453 回答