Programme C sur la parité avec une fonction

Résolu/Fermé
Sharon71 Messages postés 20 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 5 avril 2009 - 1 mars 2009 à 14:56
Sharon71 Messages postés 20 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 5 avril 2009 - 21 mars 2009 à 10:39
Bonjour,
Je dois développer un programme C permettant de déterminer la parité d'un nombre. Voici ce que j'ai fait :
# include <stdio.h>
main () {
int x, y ;
char resultat ;
x=11 ;
y=x/2 ;
if (x==2*y) resultat = 'vrai' ;
else resultat = 'faux' ;
printf("Le chiffre x=%i (pour lequel y=%i) donne resultat %c, x, y, resultat) ;
}

On nous demande ensuite de modifier ce programme pour que le résultat soit obtenu par appel à une fonction que l'on nommera pair. Elle acceptera un argument et retournera une solution de type caractère.
Nous n'avons pas encore vu les fonctions et les arguments en cours, alors est-ce que quelqu'un pourrait m'aider ? J'ai essayé de comprendre avec un livre, mais j'ai un peu de mal, parce que je n'ai trouvé aucun exemple qui retourne une solution de type caractère. Est-ce que je dois utiliser la même chose que précédemment dans la définition de la fonction ? Et je ne vois pas ce que je dois alors mettre dans le programme.
Merci beaucoup d'avance pour vos réponses.

7 réponses

[o.o]REplay Messages postés 357 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 20 juillet 2009 28
1 mars 2009 à 15:32
Bonjour,
Premièrement, ton programme ne fonctionnera pas.

-Tu ne peux pas mettre le mot 'vrai' dans un char, un char c'est un caractère.
-Ensuite, lorsque tu divise y par deux, n'oublie pas que y est un entier, donc 11/2 = 5, et pas 5,5.

Pour savoir si un nombre est pair ou pas, tu peux faire plus simple:
L'opérateur % renvoie le reste de la division entière (c'est modulo).
par exemple:
10%9 = 1 (1x9 + 1 = 10)
100%8 = 4 (12x8 + 4 = 96 + 4 = 100)
Donc pour savoir si un nombre est pair ou non, il suffit de faire un %2. Si le résultat est 1, c'est qu'il est impaire, si c'est 0, c'est qu'il est pair.
exemple: 5%2 = 1 (2x2 +1), 6%2 = 0 (3x2 + 0).

Tu pourras trouver ton bonheur sur ce site:

https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c

tu pourra comprendre comment marche les fonctions, et combler tes lacunes sur les bases.

Bonne continuation.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
1 mars 2009 à 15:54
Salut
Ensuite, lorsque tu divise y par deux, n'oublie pas que y est un entier, donc 11/2 = 5, et pas 5,5.
Justement, c'était je pense le principe de son algorithme. Seul un nombre pair passera sa condition.

Après c'est vrai, que le modulo comme tu as dit, c'est beaucoup mieux ;)
0
Sharon71 Messages postés 20 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 5 avril 2009
13 mars 2009 à 18:04
Merci beaucoup pour vos réponses.
C'est vrai que c'est plus pratique avec le modulo, mais je ne connaissais pas, comme je débute en langage C.
En fait, nous n'avons pas le même prof en cours et en TP et dans les TP, il y a plus de la moitié que nous n'avons pas encore vu en cours et comme les TP sont notés, cela me stresse beaucoup... J'essaye de comprendre avec des livres, mais c'est pas toujours facile et j'aimerai bien aussi avoir la possibilité de tester mes programmes avant les TP.
0
mamiemando Messages postés 33284 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 septembre 2024 7 787
13 mars 2009 à 22:11
Il suffit que tu installes un environnement de développement pour t'entrainer, par exemple dev-cpp ou code::blocks si tu es sous windows, ou carrément un linux.

Bonne chance
0
Sharon71 Messages postés 20 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 5 avril 2009
14 mars 2009 à 17:34
Merci pour l'info.
J'ai donc téléchargé dev-cpp. Pourrais-tu me dire comment il faut faire ensuite ? Merci.
0

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

Posez votre question
mamiemando Messages postés 33284 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 septembre 2024 7 787
15 mars 2009 à 18:13
Il faut.. lire la doc (voir site de devcpp) :-)
http://www.bloodshed.net/dev/doc/index.html

Je n'ai jamais utilisé dev cpp, je programme surtout sous linux avec des outils basiques (vim, make, gcc...).

Bonne chance
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 mars 2009 à 18:28
0
Sharon71 Messages postés 20 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 5 avril 2009
21 mars 2009 à 10:39
Merci beaucoup pour les infos.
0