Jak zrobić w C++ aby wynik modulo był dodatni?
Gdy zastosuję % to dla przykładu np. -5 mod 3 otrzymam -2, a chcę otrzymać wynik: 1.
0
0
abs() - wartość bezwzględna
0
% nie jest operatorem modulo, tylko operatorem reszty z dzielenia, przy dodatnich liczbach nie ma to znaczenia, a przy ujemnych ma dokładnie taki jak pokazałeś, musisz przerobić liczbę ujemną lub dodatnią na na pewno dodatnią i dopiero modulo
0
int r= a mod b;
if(r<0)
{
r+=b;
}
0
Dzięki za pomoc, teraz działa jak powinno ;)