Langage C/C++

Comment savoir si un nombre est pair ou impair en C

En programmation, il est souvent nécessaire de déterminer si un nombre est pair ou impair. Cet article vous montrera comment faire cela en langage C à l’aide d’opérations arithmétiques simples.

Pai ou impair ? Méthode 1 : Utilisation de l’opérateur de modulo (%)

L’opérateur de modulo (%) en C permet de calculer le reste de la division entre deux nombres. Si un nombre est divisible par 2 sans laisser de reste, il est pair. Sinon, il est impair. Voici comment cela peut être fait en C :

#include <stdio.h>

int main() {
    int nombre;

    printf("Entrez un nombre : ");
    scanf("%d", &nombre);

    if (nombre % 2 == 0) {
        printf("%d est un nombre pair.\n", nombre);
    } else {
        printf("%d est un nombre impair.\n", nombre);
    }

    return 0;
}

Dans cet exemple, nous demandons à l’utilisateur d’entrer un nombre. Ensuite, nous utilisons l’opérateur de modulo pour vérifier si le nombre est divisible par 2. Si le reste de la division est égal à zéro, nous affichons que le nombre est pair, sinon, nous affichons qu’il est impair.

Ce programme permet à l’utilisateur de vérifier la parité de n’importe quel nombre qu’il saisit, ce qui en fait un exemple plus interactif et complexe de détermination de la parité en C.

Méthode 2 : Utilisation de l’opération de décalage

L’opération de décalage (>>) est couramment utilisée pour déterminer si un nombre est pair ou impair en C. Voici comment cela fonctionne avec quelques exemples :

  1. Vérifier si un nombre est pair :
  • En utilisant l’opération de décalage vers la droite (>>) avec le chiffre 1 :
   if (nombre & 1 == 0) {
       // Le nombre est pair
   } else {
       // Le nombre est impair
   }

L’opérateur “&” effectue un “et” logique bit à bit entre le nombre et 1. Si le résultat est 0, cela signifie que le nombre est pair.

  1. Vérifier si un nombre est impair :
  • En utilisant l’opération de décalage vers la droite (>>) avec le chiffre 1 :
   if (nombre & 1 == 0) {
       // Le nombre est pair
   } else {
       // Le nombre est impair
   }

Cette approche est similaire à la précédente, mais elle utilise l’opération de décalage pour déterminer si le nombre est impair.

  1. Exemple pratique :
   int nombre1 = 4;  // Un nombre pair
   int nombre2 = 7;  // Un nombre impair

   if (nombre1 & 1 == 0) {
       printf("%d est pair\n", nombre1);
   } else {
       printf("%d est impair\n", nombre1);
   }

   if (nombre2 & 1 == 0) {
       printf("%d est pair\n", nombre2);
   } else {
       printf("%d est impair\n", nombre2);
   }

Cet exemple utilise l’opération de décalage pour vérifier si nombre1 et nombre2 sont pairs ou impairs, puis affiche le résultat correspondant.

Exemple de code

Une autre méthode pour déterminer si un nombre est pair ou impair en C est d’utiliser l’opération de décalage (>>). Voici comment cela peut être fait :

#include <stdio.h>

int main() {
    int nombre;

    printf("Entrez un nombre : ");
    scanf("%d", &nombre);

    if (nombre & 1) {
        printf("%d est un nombre impair.\n", nombre);
    } else {
        printf("%d est un nombre pair.\n", nombre);
    }

    return 0;
}

Dans cet exemple, nous utilisons l’opération de décalage à droite (>>) pour vérifier le bit de poids faible (le bit le moins significatif). Si ce bit est défini, le nombre est impair, sinon, il est pair.

Conclusion

Déterminer si un nombre est pair ou impair en langage C est une tâche courante. Vous pouvez utiliser l’opérateur de modulo ou l’opération de décalage pour accomplir cette tâche de manière simple et efficace. Les deux méthodes donnent le même résultat, vous pouvez donc choisir celle qui vous convient le mieux.

Autres articles

Guide : Comment créer un QCM en...
Le QCM en langage C peut être simulé dans un...
Read more
Tableaux en Langage C : Exercices Corrigés
Voici une série d'exercices corrigés sur les tableaux en langage...
Read more
Comment fonctionne la récursion terminale en C...
La récursion terminale en CLa récursion terminale est une forme...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *