what happens when you use negative operators with %. example -3%2 or 3%-2
In C89, C90, and C++03 the standards requires only that (a/b)*b+a%b == a for the / and % operators.
If both operands are nonnegative then the remainder is nonnegative; if not, the sign of the remainder is implementation-defined
Edit: In C99 a negative number will be returned if the first argument is negative