Programme en C : parité d'un nombre

Fermé
Mizukage Tobi Messages postés 20 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 24 février 2010 - 17 févr. 2010 à 14:14
 farid - 21 janv. 2012 à 23:35
Bonjour,
J'ai fait ce programme pour déterminer si une nombre est pair ou impaire :


#include<stdio.h>
int a, b ;
int main ()
{
printf("\nValeur de a :") ;
scanf("%d", &a) ;
b / 2 == a ;
if (a * 2 == b)
printf("Oui\n") ;
else
printf("Non\n") ;
}

Le résultat est toujoours faux, à part en entrant a = 0.
Que dois je faire ?
J'ai vu qu'il est possible d'utiliser le modulo, mais je ne sais pas comment faire !

Merci par avance

8 réponses

néoInformaticienne Messages postés 20 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 17 février 2010 8
17 févr. 2010 à 14:19
Bonjour !
Alors c'est tout simple le modulo renvoit le reste d'une division
Par exemple 25 modulo 2 = 1
24 modulo 2 = 0
A partir de là il suffit de faire
if( a % 2 == 1)
{
printf("Il est impaire")
}
else
{
printf("Il est paire")
}

et pour régler le problème du 0, faut juste mettre une condition au début.
Tu peux même la jouer ultra précis et gérer si le chiffre entré et négatif dans ce cas multiplier par -1 enfin bon ...
j'espère avoir été claire
6
Mizukage Tobi Messages postés 20 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 24 février 2010 4
17 févr. 2010 à 14:55
Merci beaucoup, j'ai trouvé comment cela fonctionne en faisant ce programme :


#include<stdio.h>
int a, b ;
int main ()
{
printf("\nValeur de a :") ;
scanf("%d", &a) ;
a == b * 2 ;
if (a%2 == 0) /* Utilisation du modulo, ici reste = 0 */
printf("Oui\n") ;
if (a%2 == 1)
printf("Non\n") ;
}


Maintenant je voudrais modifier ce programme pour que le résultat soit obtenu par appel à une fonction (que je nommerais pair).
Dois je insérer la commande char pair ?
1
merci bqqqqqqq
0
néoInformaticienne Messages postés 20 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 17 février 2010 8
17 févr. 2010 à 15:15
Euh si tu veux faire appel à une fonction c'est que tu veux retourner un entier ou un caractère à la rigueur, mais qui va te servir pour travailler sur la valeur dans le main ... est ce le cas?
Sinon si c'est juste de l'affichage je te recommande une procédure.

Toujours en espérant avoir été claire
0
Mizukage Tobi Messages postés 20 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 24 février 2010 4
17 févr. 2010 à 15:29
En effet, je voudrais retourner une solution de type caractère.
J'ai trouvé deux méthodes pour appeler une fonction :
Première méthode : utiliser son nom suivi de la liste d'arguments entre parenthèses, dans une instruction. Si la fonction a une valeur de retour, elle sera ignorée.
exemple : mike(34) ;
Seconde méthode (celle qui concerne les fonctions renvoyant à une valeur) :
printf("La moitié de "%d est %d.", y, moitié_de(y)) ;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mizukage Tobi Messages postés 20 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 24 février 2010 4
17 févr. 2010 à 15:35
Ensuite, on pourrait définir : b = moitié_de(y)
a = valeur_de(x)

avec
printf("La valeur de %d est %d.", x, Valeur_de(x)) ;
0
néoInformaticienne Messages postés 20 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 17 février 2010 8
17 févr. 2010 à 17:55
Pfiou j'ai du mal à te suivre je dois avouer (fin de journée oblige).
Si tu n'as pas trouvé de solution ou comment faire dis le moi et je te proposerais une solution dont tu pourras t'inspirer à la rigueur.
0
Mizukage Tobi Messages postés 20 Date d'inscription mercredi 2 décembre 2009 Statut Membre Dernière intervention 24 février 2010 4
17 févr. 2010 à 17:56
Oui, je vous remercie car cela fait deux heures que je recherche comment faire, et je ne trouve pas :-(
0
néoInformaticienne Messages postés 20 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 17 février 2010 8
17 févr. 2010 à 20:04
Oki alors voilà ce que je ferais, je précise que je n'ai pas compilé.

Ceci c'est avec une fonction qui retourne un caractère :

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

char parite ( int leNb)
{
char reponse;
reponse = 'p';
if ( leNb % 2 == 1)
{
reponse = 'i';
}
return reponse;
}

int main(void)
{
int votreNbre
printf("Entrez un nombre svp\n");
scanf("%d", &votreNbre);
if(votreNbre > 0)
{
if((parite(votreNbre)) == 'p')
{
printf("C'est pair\n");
}
else
{
printf("C'est impaire\n");
}
}
else
{
printf("0 est pair c'est bien connu!\n");
}
getchar();
return 0;
}


Ici c'est avec une procédure :

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

void parite ( int leNb)
{
if ( leNb % 2 == 1)
{
printf("Ce nombre est impaire\n");
}
else
{
printf("Ce nombre est paire\n");
}
}

int main(void)
{
int votreNbre
printf("Entrez un nombre svp\n");
scanf("%d", &votreNbre);
if(votreNbre > 0)
{
parite(votreNbre);
}
else
{
printf("0 est pair c'est bien connu!\n");
}
getchar();
return 0;
}

Voilà
0