logo

Operator Modulo (%) în C/C++ cu Exemple

În C sau C++, operator modulo (cunoscut și ca operator modul) , notat cu %, este an operator aritmetic . Operatorul de diviziune modulo produce rest a unei diviziuni întregi care se mai numește și modulul operației.

Sintaxa operatorului de modul

Dacă x și y sunt numere întregi, atunci expresia:



x   %   y;>

pronuntat ca x mod y. De exemplu, 10 % 2 va fi pronunțat ca Ten mod Two.

Valoarea de returnare a operatorului Modulo

  • Dacă y împarte complet x, rezultatul expresiei este 0.
  • Dacă x nu este complet divizibil cu y, atunci rezultatul va fi restul în intervalul [0, y-1]
  • (X % și) < (x / 2) ………dacă (x>= y)
  • (X % y) = x ……… dacă (x
  • Dacă y este 0, atunci impartirea cu zero este o eroare de compilare .

Exemplu de operator Modulo

Mai jos este programul C/C++ pentru a demonstra funcționarea operatorului 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




descărcare sts

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

>

>

Restricții asupra operatorului Modulo

Operatorul modulo are puține restricții sau limitări asupra acestuia. The operator de modul % nu poate fi aplicat numere în virgulă mobilă adică float sau dublu. Dacă încercați să utilizați operatorul modulo cu constante sau variabile în virgulă mobilă, compilatorul va produce o eroare.

Exemplul 1: program C/C++ pentru a demonstra restricțiile operatorului 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>

>

>

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

>

>

Ieșire

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 modul pentru operanzi negativi

Semnul rezultatului pentru operatorul modulo este dependent de mașină pentru operanzi negativi, deoarece acțiunea ia ca urmare a depășirii sau a depășirii.

Exemplul 2: program C/C++ pentru a demonstra operatorul modulo pentru operanzi negativi.

C++




hashmap în java
// 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>

np.argmax
>

>

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

>

>

Ieșire

-3 0 -3>

Notă: Valoarea returnată în acest caz este dependentă de compilator.

Întrebări frecvente despre Modulo Operator

Î1. Definiți mod.

Răspuns:

În limbajele de programare C/C++, mod se referă la operația matematică în care un număr este împărțit la altul, iar restul este returnat.

Se poate realiza folosind modul operator (%) .

Q2. Ce este aritmetica mod?

Răspuns:

Aritmetica mod se referă la procesul în care un număr continuă să se înfășoare în jurul unui anumit punct, astfel încât să fie întotdeauna mai mic decât acel anumit punct. De exemplu,

Luați în considerare numărul n = 10 si punctul p = 20.
Când creștem n de 10 ori, acesta va fi n = 20, dar în aritmetică modulară, ar trebui să fie mai mic decât punctul specificat.

O modalitate de a face acest lucru este să utilizați operatorul modulo ca:

n++; n = n % p;>

Pentru a afla mai multe despre aritimatic modular, consultați articolul – Aritmetica modulară

Q3. Care este diferența dintre operatorul modulo și diviziunea?

Răspuns:

Diferența majoră dintre operatorul modulo și diviziunea este că:

  • Modul operator (%) returnează restul după împărțirea unui număr cu altul.
  • Divide Operator (/) returnează câtul după împărțirea unui număr cu altul.