В программе c я пытался выполнить следующие операции (Просто для проверки поведения)
x = 5 % (-3);
y = (-5) % (3);
z = (-5) % (-3);
printf("%d,%d,%d", x, y, z);
дал мне вывод как (2, -2, -2)
в gcc. Каждый раз ждал положительного результата. Может ли модуль быть отрицательным? Кто-нибудь может объяснить такое поведение?