logo

Оператор модуля (%) у C/C++ із прикладами

У C або C++, оператор модуля (також відомий як оператор модуля) , що позначається %, є an арифметичний оператор . Оператор ділення за модулем створює залишок цілочисельного ділення, яке також називають модулем операції.

Синтаксис оператора модуля

Якщо x і y цілі числа, то вираз:



x   %   y;>

вимовляється як x mod y. Наприклад, 10 % 2 буде вимовлятися як десять мод Два.

Повернене значення оператора Modulo

  • Якщо y повністю ділить x, результат виразу дорівнює 0.
  • Якщо x не повністю ділиться на y, то результатом буде залишок у діапазоні [0, y-1]
  • % і) < (x / 2) ………якщо (x>= y)
  • % y) = x ……… якщо (x
  • Якщо y дорівнює 0, тоді ділення на нуль це помилка під час компіляції .

Приклад оператора Modulo

Нижче наведено програму C/C++ для демонстрації роботи оператора 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




// 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;> }>

>

>

Обмеження для оператора Modulo

Оператор modulo має кілька обмежень. The % оператор модуля не можна застосувати до числа з плаваючою комою тобто float або double. Якщо ви спробуєте використати оператор modulo з константами чи змінними з плаваючою комою, компілятор видасть помилку.

Приклад 1: програма C/C++ для демонстрації обмежень оператора 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>

рядок підрядок java

>

>

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;> }>

>

>

Вихід

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;  ^>

Оператор модуля для негативних операндів

Знак результату для оператора модуля залежить від машини для від’ємних операндів, оскільки дія виконується в результаті недоповнення або переповнення.

Приклад 2: програма C/C++ для демонстрації оператора модуля для від’ємних операндів.

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>

>

>

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;> }>

>

>

Вихід

-3 0 -3>

Примітка: Повернене значення в цьому випадку залежить від компілятора.

Поширені запитання щодо оператора Modulo

Q1. Визначити мод.

відповідь:

У мовах програмування C/C++ mod відноситься до математичної операції, під час якої одне число ділиться на інше, а залишок повертається.

Його можна виконати за допомогою операторський модуль (%) .

Q2. Що таке модна арифметика?

відповідь:

Модифікована арифметика стосується процесу, у якому число обертається навколо певної точки таким чином, що воно завжди менше за цю певну точку. Наприклад,

Розглянемо число n = 10 і точка p = 20.
Коли ми збільшимо n у 10 разів, воно буде n = 20, але в модульній арифметиці воно має бути значно меншим за вказану точку.

Один із способів зробити це - використовувати оператор модуля як:

сортувати масив у java
n++; n = n % p;>

Щоб дізнатися більше про модульну аритиматику, зверніться до статті – Модульна арифматика

Q3. Яка різниця між оператором модуля і ділення?

відповідь:

Основна відмінність між оператором модуля і ділення полягає в тому, що:

  • Операторський модуль (%) повертає залишок після ділення одного числа на інше.
  • Оператор ділення (/) повертає частку після ділення одного числа на інше.