logo

Operator Modulo (%) w C/C++ z przykładami

W C lub C++, operator modulo (znany również jako operator modulo) , oznaczony jako %, to an operator arytmetyczny . Operator dzielenia modulo tworzy reszta dzielenia całkowitego, zwanego także modułem operacji.

Składnia operatora modułu

Jeśli x i y są liczbami całkowitymi, wówczas wyrażenie:



x   %   y;>

wymawiane jako x mod y. Na przykład 10% 2 będzie wymawiane jako Ten mod Two.

Wartość zwracana operatora Modulo

  • Jeśli y całkowicie dzieli x, wynikiem wyrażenia jest 0.
  • Jeśli x nie jest całkowicie podzielne przez y, to wynikiem będzie reszta z zakresu [0, y-1]
  • (X % I) < (x / 2) ………jeśli (x>= y)
  • (X % y) = x ……… jeśli (x
  • Jeśli y wynosi 0, to dzielenie przez zero jest błąd w czasie kompilacji .

Przykład operatora Modulo

Poniżej znajduje się program C/C++ demonstrujący działanie operatora modulo:

C++








// C++ Program to demonstrate the working of modulo operator> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >cout << result << endl;> >result = y % x;> >cout << result << endl;> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Mayank Tyagi>

>

>

C




// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = 3;> >y = 4;> >// using modulo operator> >result = x % y;> >printf>(>'%d'>, result);> >result = y % x;> >printf>(>' %d'>, result);> >// for different values> >x = 4;> >y = 2;> >result = x % y;> >printf>(>' %d'>, result);> >return> 0;> }>

znak na ciąg Java
>

>

Ograniczenia operatora Modulo

Operator modulo ma kilka ograniczeń. The operator modułu % nie można zastosować Liczb zmiennoprzecinkowych tj. float lub double. Jeśli spróbujesz użyć operatora modulo ze stałymi lub zmiennymi zmiennoprzecinkowymi, kompilator zgłosi błąd.

Przykład 1: Program C/C++ demonstrujący ograniczenia operatora modulo.

C++




// C++ Program to demonstrate the restrictions of modulo> // operator> #include> using> namespace> std;> // Driver code> int> main()> {> >float> x, y;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava>

Edyta Mack Hirsch
>

>

C




// C Program to illustrate the working of modulo operator> #include> int> main(>void>)> {> >float> x, y;> >float> result;> >x = 2.3;> >y = 1.5;> >// modulo for floating point values> >result = x % y;> >printf>(>'%f'>, result);> >return> 0;> }>

>

>

Wyjście

Compilation Error in C code :- prog.c: In function 'main': prog.c:19:16: error:  invalid operands to binary % (have 'float' and 'float')  result = x % y;  ^>

Operator Modulo dla argumentów ujemnych

Znak wyniku dla operatora modulo jest zależny od maszyny w przypadku argumentów ujemnych, ponieważ akcja jest podejmowana w wyniku niedopełnienia lub przepełnienia.

Przykład 2: Program C/C++ demonstrujący operator modulo dla argumentów ujemnych.

C++




// C++ Program to demonstrate the working of the modulo> // operator for negative operands> #include> using> namespace> std;> // Driver code> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >cout << result << endl;> >x = 4;> >y = -2;> >result = x % y;> >cout << result << endl;> >x = -3;> >y = -4;> >result = x % y;> >cout << result;> >return> 0;> }> // This code is contributed by Harshit Srivastava>

>

>

jak wywołać metodę w Javie

C




// C Program to illustrate the working of the modulo> // operator with negative operands> #include> int> main(>void>)> {> >int> x, y;> >int> result;> >x = -3;> >y = 4;> >// modulo for negative operands> >result = x % y;> >printf>(>'%d'>, result);> >x = 4;> >y = -2;> >result = x % y;> >printf>(>' %d'>, result);> >x = -3;> >y = -4;> >result = x % y;> >printf>(>' %d'>, result);> >return> 0;> }>

>

>

Wyjście

-3 0 -3>

Notatka: Wartość zwracana w tym przypadku zależy od kompilatora.

Często zadawane pytania dotyczące operatora Modulo

Pytanie 1. Zdefiniuj moda.

Odpowiedź:

W językach programowania C/C++ mod odnosi się do operacji matematycznej, podczas której jedna liczba jest dzielona przez drugą, a reszta jest zwracana.

Można to wykonać za pomocą operator modulo (%) .

Pytanie 2. Co to jest arytmetyka modowa?

Odpowiedź:

Mod arytmetyczna odnosi się do procesu, w którym liczba owija się wokół pewnego punktu w taki sposób, że zawsze jest mniejsza od tego określonego punktu. Na przykład,

Rozważ liczbę n = 10 i punkt p = 20.
Kiedy zwiększymy n 10 razy, będzie to n = 20, ale w arytmetyce modułowej powinno być mniejsze niż określony punkt.

Jednym ze sposobów na osiągnięcie tego jest użycie operatora modulo jako:

n++; n = n % p;>

Więcej informacji na temat arytmatyki modułowej można znaleźć w artykule – Arytmetyka modułowa

Pytanie 3. Jaka jest różnica między operatorem modulo a operatorem dzielenia?

Odpowiedź:

Główna różnica między operatorem modulo a operatorem dzielenia polega na tym, że:

  • Moduł operatora (%) zwraca resztę z dzielenia jednej liczby przez drugą.
  • Operator dzielenia (/) zwraca iloraz po podzieleniu jednej liczby przez drugą.