我的C ++代码存在问题,我在这里做了两个关于毕达哥拉斯的步骤。
我在做毕达哥拉斯函数的同时获得a和b的长度,但我的变量总是等于0,即使X和Y点显示各自的值。
不幸的是,由于这个原因,因为你不能平方根0,所以当它因为一个错误而产生的副本时,它会产生错误。
它看起来有点复杂,但这是我能得到的最好的
hypPrevious = (
( *(previousCalcp->getX()) - *(currentCalcp->getX()) )
*
( *(previousCalcp->getX()) - *(currentCalcp->getX()) )
)
+
(
( *(currentCalcp->getY()) - *(previousCalcp->getY()) )
*
( *(currentCalcp->getY()) - *(previousCalcp->getY()) )
);
答案 0 :(得分: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
更改为您在代码中使用的任何内容。