Programme C débutant

Bonjour,
je commence tout juste et le c et je chercher à savoir si un entier est réel ou pas et je n'y arrive pas. si vous pouviez me rectifier ce serait gentil^^.
Voila donc le problème, quand je met 5 après avoir lancé le programme, il me met 5 est pair (lol)

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
//Déclaration des ressources
int a ;
//Saisie du nombre
printf("Entrer un nombre entier \n") ;
scanf("%d",&a) ;
if(a%2)==0)
{
printf("%d est un nombre pair",a);
}
else
{
printf("%d est un nombre impair",a);
}
}
system("PAUSE");
return 0 ;
}
Configuration: Windows 7
Firefox 3.5.3

4 réponses

  1. Ca serait pas
    if(a%2)
    {
    printf("%d est un nombre impair",a);
    }
    else
    {
    printf("%d est un nombre pair",a); 


    ? O_o

    If (a%2) revient à a%2 != 0 non ? If (a%2) existe quoi
    si le résultat d'un %2 est différent de 0 c'est 1 donc impair plutôt

    (Espere ne pas dire n'importe quoi)
    1. Bien sur que si, tu as parfaitement raison, je me suis trompé :)
  2. Tout à fait d'accord, mais il y a une accolade en trop et le '#include <math.h> qui ne sert à rien.
    Bonne continuation.
    1. Bonjour,

      A part une erreur de parenthése, ton code m'a l'air correct, tu n'est pas obligé de mettre ==0, tu peux juste indiquer if(a%2) dans ce cas particulier (modulo 2) la valeur renvoyer est soit 0 (=false en language c) ou 1 (= true en language c)

      ça revient à :
      #include <math.h>
      #include <stdio.h>
      #include <stdlib.h>

      int main(int argc, char *argv[])
      {
      //Déclaration des ressources
      int a ;
      //Saisie du nombre
      printf("Entrer un nombre entier \n") ;
      scanf("%d",&a) ;
      // permet de vérifier le résultat avant de rentrer dans le test
      printf("Le modulo de %d %2 est :",a,(a%2));

      if(a%2)
      {
      printf("%d est un nombre pair",a);
      }
      else
      {
      printf("%d est un nombre impair",a);
      }
      }
      system("PAUSE");
      return 0 ;
      }

      tiens moi au courant!