モジュラスのコードを作成しようとしていますが、負の数のコードを作成すると、正しい結果が得られません。コードは次のとおりです。
double mod (double X, double Y)
{
double result = X;
if (X>0){
do
{
result = result - Y;
}while(result >= Y);
}
if (X<0){
do
{
result = result + Y;
}while(0 >= result);
}
}
mod(-5,2)のようなことをすると、-1が返されるはずですが、1が返されます。0より大きくできないのに、なぜ1が返されるのでしょうか。
私の考えでは、-5 + 2 = -3 + 2=-1のように機能すると思いました。正の場合、5-2 = 3-2=1になります。
ありがとう。
編集:私は自分の数学ライブラリを使用してCMATHを使用せずにこれを実行しようとしています。
編集:私の戻り結果はプログラムの後の部分にあり、出力を表示します。これは、プログラム全体の単なるブロックです。