所以我有我的双倍计算距离
double calculate2DDistance(int x1, int y1, int x2, int y2)
{
return sqrt((x2 - x1)^2 + (y2 - y1)^2);
}
注意我正在从名为math.h的标题中调用此方法到我的主
中我在main.h中的测试行
cout << calculate2DDistance(2.0, 4.0, 3.0, 1.0) << endl;
它打印出完全错误的答案或-1。#IND
怎么回事?
答案 0 :(得分:6)
在C ++中,^
运算符表示按位XOR。
要将数字提升为幂,请使用std::pow
:
return sqrt(std::pow(x2 - x1, 2) + std::pow(y2 - y1, 2));
或者,在您的情况下(仅仅是平方),使用乘法会更有效:
const int dx = x2 - x1;
const int dy = y2 - y1;
return sqrt((dx * dx) + (dy * dy));