Операция по модулю с отрицательными числами

В программе c я пытался выполнить следующие операции (Просто для проверки поведения)

 x = 5 % (-3);
 y = (-5) % (3);
 z = (-5) % (-3); 

printf("%d,%d,%d", x, y, z); 

дал мне вывод как (2, -2, -2)в gcc. Каждый раз ждал положительного результата. Может ли модуль быть отрицательным? Кто-нибудь может объяснить такое поведение?

172
задан nonsensickle 20 August 2015 в 22:42
поделиться