This question already has answers here:
Modulo operation with negative numbers
                                
                                    (12个答案)
                                
                        
                                2年前关闭。
            
                    
我有以下代码

#include <stdio.h>

int main(void)
{

    printf("%d\n", -8%5);


    printf("%d\n", 8%-5);

    printf("%d\n", -8%-5);


    return 0;
}


我得到的输出是

-3
3
-3


-8%5和8%-5的符号如何不同,尤其是当-8/5和8 / -5的结果具有相同的输出时?

另外,为什么当-8 / -5将其输出为1时,-8%-5给出-3作为输出?

最佳答案

如果两个操作数均为非负数,则其余为非负数;如果不是,则其余符号由实现定义。

关于c - 为什么-8%-5的结果等于-3 ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42442417/

10-13 06:22