logo

Opérateur Modulo (%) en C/C++ avec exemples

En C ou C++, le opérateur modulo (également appelé opérateur module) , noté %, est un opérateur arithmétique . L'opérateur de division modulo produit le reste d'une division entière qui est aussi appelée module de l'opération.

Syntaxe de l'opérateur de module

Si x et y sont des nombres entiers, alors l'expression :



x   %   y;>

prononcé comme x mod y. Par exemple, 10 % 2 sera prononcé comme Ten mod Two.

Valeur de retour de l'opérateur modulo

  • Si y divise complètement x, le résultat de l’expression est 0.
  • Si x n'est pas complètement divisible par y, alors le résultat sera le reste dans la plage [0, y-1]
  • (X % et) < (x / 2) ………si (x>= y)
  • (X % y) = x ……… si (x
  • Si y vaut 0, alors division par zéro est un erreur de compilation .

Exemple d'opérateur Modulo

Vous trouverez ci-dessous le programme C/C++ pour démontrer le fonctionnement de l'opérateur 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;> }>

c'est en python
>

>

Restrictions sur l'opérateur Modulo

L'opérateur modulo a peu de restrictions ou de limitations. Le Opérateur % module ne peut pas être appliqué à nombres à virgule flottante c'est-à-dire flotter ou double. Si vous essayez d'utiliser l'opérateur modulo avec des constantes ou des variables à virgule flottante, le compilateur produira une erreur.

Exemple 1 : programme C/C++ pour démontrer les restrictions de l'opérateur 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>

vlc télécharger youtube
>

>

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

>

>

Sortir

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

Opérateur modulo pour les opérandes négatifs

Le signe du résultat pour l'opérateur modulo dépend de la machine pour les opérandes négatifs, car l'action résulte d'un dépassement inférieur ou supérieur.

Exemple 2 : programme C/C++ pour démontrer l'opérateur modulo pour les opérandes négatifs.

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>

>

>

compte distinct

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

>

>

Sortir

-3 0 -3>

Note: La valeur de retour dans ce cas dépend du compilateur.

FAQ sur l'opérateur Modulo

T1. Définir le mod.

Répondre:

Dans les langages de programmation C/C++, mod fait référence à l'opération mathématique dans laquelle un nombre est divisé par un autre et le reste est renvoyé.

Elle peut être réalisée en utilisant module opérateur (%) .

Q2. Qu’est-ce que l’arithmétique mod ?

Répondre:

L'arithmétique mod fait référence au processus dans lequel un nombre continue de s'enrouler autour d'un certain point de telle manière qu'il est toujours inférieur à ce certain point. Par exemple,

Considérez le nombre n = 10 et le point p = 20.
Lorsque nous incrémentons n 10 fois, ce sera n = 20 mais en arithmétique modulaire, il devrait être plus petit que le point spécifié.

Une façon de procéder consiste à utiliser l'opérateur modulo comme :

n++; n = n % p;>

Pour en savoir plus sur l'aritimatique modulaire, reportez-vous à l'article - Arithmatique modulaire

Q3. Quelle est la différence entre l’opérateur modulo et l’opérateur diviser ?

Répondre:

La principale différence entre l'opérateur modulo et l'opérateur de division est la suivante :

  • Module opérateur (%) renvoie le reste après avoir divisé un nombre par un autre.
  • Opérateur de division (/) renvoie le quotient après avoir divisé un nombre par un autre.