Функция C ++ Sqrt

когда я компилирую свою программу, кажется, что она не выполняет мою формулу, я не могу понять, что я делаю неправильно, помощь будет оценена

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

1

Решение

Изменить расстояние, Xvalue и Yvalue на двойные

2

Другие решения

Я уверен, что это может быть частью вашей проблемы:

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

входные значения 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)»)

0
По вопросам рекламы [email protected]