logo

Modulo operátor (%) v C/C++ s príkladmi

V C alebo C++ je operátor modulo (známy aj ako operátor modulu) , označený %, je an aritmetický operátor . Operátor divízie modulo vyrába zvyšok celočíselného delenia, ktoré sa tiež nazýva modul operácie.

Syntax operátora modulu

Ak x a y sú celé čísla, potom výraz:



x   %   y;>

vyslovované ako x mod y. Napríklad 10 % 2 sa vysloví ako Ten mod Two.

Návratová hodnota operátora Modulo

  • Ak y úplne delí x, výsledok výrazu je 0.
  • Ak x nie je úplne deliteľné y, výsledkom bude zvyšok v rozsahu [0, y-1]
  • (X % a) < (x / 2) ………ak (x>= y)
  • (X % y) = x ……… ak (x
  • Ak y je 0, potom delenie nulou je a chyba pri kompilácii .

Príklad operátora Modulo

Nižšie je uvedený program C/C++, ktorý demonštruje fungovanie operátora modulo:

C++




internetový protokol smtp





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

>

>

Obmedzenia týkajúce sa operátora Modulo

Operátor modulo má niekoľko obmedzení alebo obmedzení. The operátor % modulu nemožno použiť na čísla s pohyblivou rádovou čiarkou teda plavák alebo dvojitý. Ak sa pokúsite použiť operátor modulo s konštantami alebo premennými s pohyblivou rádovou čiarkou, kompilátor vygeneruje chybu.

Príklad 1: Program v C/C++ na demonštráciu obmedzení operátora modulo.

C++




spracovanie výnimiek v jazyku Java
// 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>

>

>

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

>

>

Výkon

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

Modulo operátor pre záporné operandy

Znamienko výsledku pre operátora modulo je závislé od stroja pre záporné operandy, pretože akcia prebieha v dôsledku podtečenia alebo pretečenia.

Príklad 2: Program v C/C++ na demonštráciu operátora modulo pre záporné operandy.

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

>

>

Výkon

-3 0 -3>

Poznámka: Návratová hodnota v tomto prípade závisí od kompilátora.

java len poľa

Často kladené otázky o Modulo Operator

Q1. Definujte mod.

odpoveď:

V programovacích jazykoch C/C++ sa mod vzťahuje na matematickú operáciu, pri ktorej sa jedno číslo vydelí druhým a zvyšok sa vráti.

Môže sa vykonávať pomocou operátorský modul (%) .

Q2. Čo je mod aritmetika?

odpoveď:

Mod aritmetika sa vzťahuje na proces, v ktorom sa číslo stále obtáča okolo určitého bodu takým spôsobom, že je vždy menšie ako tento určitý bod. Napríklad,

Zvážte číslo n = 10 a bod p = 20.
Keď zvýšime n 10-krát, bude to n = 20, ale v modulárnej aritmetike by to malo byť menšie ako špecifikovaný bod.

Jedným zo spôsobov, ako to dosiahnuť, je použiť operátor modulo ako:

n++; n = n % p;>

Ak sa chcete dozvedieť viac o modulárnej aritimatike, pozrite si článok – Modulárna aritmetika

Q3. Aký je rozdiel medzi modulom a operátorom delenia?

odpoveď:

Hlavný rozdiel medzi modulom a operátorom divízie je v tom, že:

  • Modul operátora (%) vráti zvyšok po vydelení jedného čísla druhým.
  • Operátor rozdelenia (/) vráti podiel po vydelení jedného čísla druhým.