我的变量总是变为零

时间:2014-04-18 17:01:55

标签: c++ variables zero square-root

我的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 个答案:

答案 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更改为您在代码中使用的任何内容。