2017-05-23 14 views
-2

ユークリッド距離はintタイプで計算できますか?ユークリッド距離はCで

public static int ED(int x1, int x2, int y1, int y2) 
    { 
     int square = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); 
     return square; 
    } 

私はこれを試してみましたが、私はMath.Sqrt機能を追加した場合、作業をdoen't。私に何ができる ?

+2

あなたは追加していません...(あなたの例では) –

+0

私は解決しました... 'int square = Convert.ToInt32(Math.Sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));' – Bob

+0

また、キャストすることもできます: 'int square =(int)Math.Sqrt(変換する代わりにx1 .....' –

答えて

2

あなたはdoubleに出力タイプを変更する必要があります。

//DONE: ED has to return double, not int 
public static double ED(int x1, int x2, int y1, int y2) 
{ 
    return Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); 
} 

座標はすべてintであっても、ユークリッド距離が整数値必要はありません。

x1 = 0 
y1 = 0 
x2 = 1 
y2 = 1 

sqrt(2) = 1.4142...を返す必要があります

関連する問題