Q:

Логика операции "Остаток от деления" в СИ

 с = a % b

Верно ли я понимаю, что всегда, когда a<b, переменная c будет равняться a?
Пример:
c = 3 % 8 /// = 3

Проверка компилятором простых случаев показала, что всё так и есть, но не всплывут ли подводные камни в более сложных случаях/примерах?

A:

Нет, не верно. -25 % 8 равно -1. Как видите, выполняется a < b, но результат не равен a.
Если вы подразумевали только неотрицательные операнды (такие детали стоит оговаривать в вопросе), то да, если a < b, то a % b будет всегда равно именно a.
Это гарантию можно расширить: благодаря тому, что целочисленное деление в современном С и С++ гарантированно выполняется с округлением к нулю, из abs(a) < abs(b) следует, что a % b равно a.

