Моя переменная всегда становится нулем

У меня есть проблема с моим кодом C ++, где я делаю два шага в одном в отношении пифагора.

Я получаю длину a и b одновременно с выполнением функции Пифагора, но моя переменная всегда равна 0, даже если точки X и Y отображаются с соответствующими значениями.

К сожалению, из-за этого, когда квадратный корень перезапускается, он вызывает ошибку, поскольку вы не можете получить квадратный корень 0.

Это выглядит довольно сложно, но это было самое лучшее, что я мог получить

hypPrevious = (
( *(previousCalcp->getX()) - *(currentCalcp->getX()) )
*
( *(previousCalcp->getX()) - *(currentCalcp->getX()) )
)
+
(
( *(currentCalcp->getY()) - *(previousCalcp->getY()) )
*
( *(currentCalcp->getY()) - *(previousCalcp->getY()) )
);

-1

Решение

С информацией, которую вы нам дали, лучший совет, который я могу вам дать, — переписать ваш код и добавить строку отладки, чтобы проверить, что идет не так:

int x1 = *(previousCalcp->getX());
int y1 = *(previousCalcp->getY())
int x2 = *(currentCalcp->getX());
int y2 = *(currentCalcp->getY());
int dx = x1 - x2;
int dy = y1 - y2;
hypPrevious = dx*dx + dy*dy;
std::cout << "(" << x1 << "," << y1 << ") and (" << x2 << "," << y2 << ") resulted in " << hypPrevious << std::endl;

Не забудьте поменять тип int к тому, что вы используете в своем коде.

1

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


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