我正在尝试为模数编写代码,但是当我为负数编写代码时,我没有得到正确的结果,我的代码:
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 来做到这一点。
编辑:我的返回结果在程序的后面部分并显示输出。这只是整个程序本身的一个块。