Square无法正常工作C ++ Xcode 4.2.1

时间:2013-01-29 03:31:21

标签: c++

我正在使用xcode v.4.5.1并尝试使用距离公式计算两点之间的距离(sqrt((x1-x2)^ 2 +(y1-y2)^ 2))用于C ++项目但由于某种原因,我的价值观没有被平方。为什么会发生这种情况?如何对值进行平方?

来源这里是点对象的向量。我正在使用的向量是(3,4)(6,8)(50,8)(11,7)。如果我在末尾打印source[i]source[i+1]source[j] .x().y(),则会打印出来并打印出来{{1等等,值是正确的。但是,一旦我添加“^ 2”,打印的值都是错误的。

例如,

source[i].x()-source[i+1].x()

BUT

cout<< source[i].y();  shows 4 8 8 7 (when looped over i)
当p = 1时,

显示1

以下是我的包含:

cout<< sqrt((source[i].x()-source[i+1].x())^2 + (source[i].y()-source[i+1].y())^2);

以下是不为我设置值的代码部分:

#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include "Point.h"

2 个答案:

答案 0 :(得分:2)

在C ++中,^是eXclusive OR运算符,而不是平方运算符。请阅读您的C ++参考资料。

答案 1 :(得分:2)

如果你想通过电源提高你的答案,在你的情况下,你正在平方,你需要使用pow功能。

要了解有关该功能的更多信息,可以在Terminal.app应用程序中键入“man pow”。

因此,对于一行,您可能希望将其更改为:

double d1 = sqrt(
    pow ( (source[i].x()-source[i+1].x()), 2 ) 
    + 
    pow( (source[i].y()-source[i+1].y()), 2 ) );