Menu
Coddy logo textTech

Opérateur modulo

Fait partie de la section Fondamentaux du Journey C++ de Coddy — leçon 17 sur 74.

L'opérateur modulo % donne le reste d'une division. En C++, il est utilisé avec une syntaxe simple :

result = dividend % divisor;
  • dividend: Le nombre à diviser.
  • divisor: Le nombre qui divise le dividende.
  • result: Le reste de la division.

Par exemple :

result = 10 % 3;

Ici, 10 est divisé par 3. 3 va dans 10 trois fois, avec un reste de 1. Ainsi, result sera 1.

Généralement, le modulo est utilisé pour vérifier si un nombre est pair ou impair :

  • Si un nombre est pair, le diviser par 2 laissera un reste de 0.
  • Si un nombre est impair, le diviser par 2 laissera un reste de 1.

Lorsque vous travaillez avec des nombres à virgule flottante (doubles) en C++, vous ne pouvez pas utiliser l'opérateur modulo % directement. À la place, vous devez utiliser la fonction fmod() de la bibliothèque <cmath>. Elle fonctionne de manière similaire à l'opérateur modulo mais conserve la précision décimale. Par exemple :

#include <cmath>

double result = fmod(5.2, 2.0);
// le résultat est 1.2

Voici comment cela fonctionne : 2.0 va dans 5.2 deux fois (4.0), et le reste est 1.2 (5.2 - 4.0 = 1.2).

Un autre exemple :

double result = fmod(7.8, 3.5);
// result est 0.8

Lorsque le diviseur est plus grand que le dividende, le résultat est égal au dividende. Cela s'applique à la fois à % et fmod().

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

Pourquoi ? Le diviseur y va zéro fois, donc le dividende entier est le reste.

challenge icon

Défi

Débutant

Écrivez un code qui initialise trois variables, a (int), b (double) et c (int) avec les valeurs 9, 2.6 et 11 (respectivement).

Après cela, initialisez les variables suivantes :

  • d (int) qui contiendra le résultat de a modulo 2 
  • e (int) qui contiendra le résultat de a modulo 3
  • f (double) qui contiendra le résultat de b modulo 1.5
  • g (double) qui contiendra le résultat de b modulo 3.9
  • h (int) qui contiendra le résultat de c modulo 10

Observez le résultat et voyez comment les différents dividendes et diviseurs affectent le résultat.

Aide-mémoire

L'opérateur modulo % donne le reste d'une division :

result = dividend % divisor;

Exemple :

result = 10 % 3;  // result is 1

Cas d'utilisation courant - vérifier si un nombre est pair ou impair :

  • Nombres pairs : number % 2 == 0
  • Nombres impairs : number % 2 == 1

Pour les nombres à virgule flottante, utilisez fmod() de <cmath> :

#include <cmath>

double result = fmod(5.2, 2.0);  // result is 1.2
double result2 = fmod(7.8, 3.5); // result2 is 0.8

Lorsque le diviseur est plus grand que le dividende, le résultat est égal au dividende. Cela s'applique à la fois à % et à fmod().

Essayez vous-même

#include <iostream>
#include <cmath>

int main() {
    // Tapez votre code ci-dessous
    
    
    // Ne modifiez pas la ligne ci-dessous
    std::cout << "a = " << a << std::endl;
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    std::cout << "e = " << e << std::endl;
    std::cout << "f = " << f << std::endl;
    std::cout << "g = " << g << std::endl;
    std::cout << "h = " << h << std::endl;
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux