Как мы можем реализовать оператор по модулю как функцию в C, не используя оператор?
Простой:
Если частное
a / b
представимо, выражение(a / b) * b + a% b
должен равнятьсяa
(стандарт C99, 6.5.5 / 6).
Выполните целочисленное деление с последующим умножением и вычтите.
#include <stdio.h>
int main()
{
int c=8, m=3, result=c-(c/m*m);
printf("%d\n", result);
}
Вы можете смоделировать x% y
, многократно вычитая y
из x
и отслеживая результат. На каждой итерации, если результат меньше y
, то у вас есть остаток, и вы можете просто вернуть его.