I read here that remquo should return:
remquo
If successful, returns the floating-point remainder of the division x/y as defined in
x/y
The behavior is correct; as stated in std::remainder, the quotient is rounded to nearest integer, then the remainder could be negative.
If you are working with integer, I suggest you the C function div()