0

だから私は距離を計算する私の二重を持っています

    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 を出力します。

どうしたの ?

4

1 に答える 1

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));
于 2013-08-24T22:04:29.083 に答える