In un programma C stavo provando le seguenti operazioni (Solo per verificare il comportamento)
x = 5 % (-3);
y = (-5) % (3);
z = (-5) % (-3);
printf("%d ,%d ,%d", x, y, z);
mi ha dato un output come (2, -2 , -2)
in gcc. Mi aspettavo un risultato positivo ogni volta. Un modulo può essere negativo? Qualcuno può spiegare questo comportamento?