当我编译程序时,它似乎没有执行我的公式,所以我不知道我在做什么错误的帮助,谢谢
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;
}
将距离,Xvalue和Yvalue更改为双倍
我很确定这可能是您的问题的一部分:
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);
距离= sqrt(pow((x2-x1),2)+ pow((y2-y1),2));
第一个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)”将它们四舍五入))>