Используются оба определения модуля отрицательных чисел - некоторые языки используют одно определение, а некоторые - другое.
Если вы хотите получить отрицательное число для отрицательных входов, вы можете использовать это:
int r = x % n;
if (r > 0 && x < 0)
{
r -= n;
}
Аналогично, если вы использовали язык, который возвращает отрицательное число на отрицательном входе, и вы бы предпочли положительный:
int r = x % n;
if (r < 0)
{
r += n;
}