когда я компилирую свою программу, кажется, что она не выполняет мою формулу, я не могу понять, что я делаю неправильно, помощь будет оценена
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);
входные значения first 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)»)