Void

Résolu
robocopolo Messages postés 93 Statut Membre -  
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,
Je dois faire un programme de pile ou face en langage C,
J'ai fait un module avec statistiques.c et statistiques.h . Dans statistiques.c j'ai fait un void qui prend en paramètre plusieurs variables que je veux afficher dans ce void.

Le soucis est que l'affichage est complètement faux
voici le code du void dans statistiques.c :
#include "statistiques.h"
#include <stdio.h>

void statistiques(float nombre_points_obtenus, float nombre_tentatives, float pourcentage_reussite_pile, float pourcentage_reussite_face, float pourcentage_reussite_joueur, int reussite_consecutive){
printf("Votre total de point obtenus est de:%.2f\n ", nombre_points_obtenus);
printf("Votre nombre total de tentatives est de : %.2f\n ", nombre_tentatives);
printf("Votre pourcentage des tentatives donnant le cote pile : %.2f pourcent\n ", pourcentage_reussite_pile * 100);
printf("Votre pourcentage des tentatives donnant le cote face : %.2f pourcent\n ", pourcentage_reussite_face * 100);
printf("Votre pourcentage de reussite est de %.2f pourcent\n ", pourcentage_reussite_joueur * 100);
printf("Votre nombre maximal de tentatives consecutives est de %d\n ", reussite_consecutive);// affichage des statistiques
}

et voici ce que j'ai mis dans main.c :
statistiques(nombre_points_obtenus, nombre_tentatives, pourcentage_reussite_pile, pourcentage_reussite_face, pourcentage_reussite_joueur, reussite_consecutive);

Avez-vous une solution ?
P.S. : dans le main.c, statistiques est souligné


7 réponses

xsimo
 
essayez avec "%lf" comme format au lieu de "%.2f"
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Non, ce n'est pas %lf qu'il faut mettre mais bien des %f.
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Bonjour,

Tu nous en dis pas assez.
Le soucis est que l'affichage est complètement faux
Qu'est-ce qui est faux précisément ? As-tu un exemple ?,
Le formatage ? Les valeurs ?

Comment sont définies les valeurs entrant en paramètre ?

En plus ton code est vraiment illisible. Pour la prochaine fois, merci de poster en utilisant les balises "code" (à droite du bouton souligné).
0
robocopolo Messages postés 93 Statut Membre
 
En fait, comme j'utilise visual studio, je peux mettre des points d'arrêt.

Donc, avant le passage dans la procédure void, les valeurs sont correctes.
Quand je mets un point d'arrêt juste au début du void, les valeurs sont correctes aussi, mais quand je mets le point d'arrêt à partir du premier printf, les valeurs changent. Donc ce n'est pas dans le programme principal mais dans la procédure qu'il y a un problème...
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Sans vouloir te contredire, ce n'est pas parce que les variables te semblent bonnes en entrée de fonction qu'elles le sont...

Pourrais-tu nous poster ton main ? (sans oublier les balises)
0
Blunderer Messages postés 273 Date d'inscription   Statut Membre Dernière intervention   83
 
Et tous tes résultats sont faux ou juste quelques uns ?
0

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

Posez votre question
robocopolo Messages postés 93 Statut Membre
 
Ils le sont tous...
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
On attend toujours ton main()... Du moins, tu veux de l'aide.
0
Blunderer Messages postés 273 Date d'inscription   Statut Membre Dernière intervention   83
 
Pourrait-on avoir les nombres avant et après ?
Pour essayer de mieux comprendre ;)
Merci
0
robocopolo Messages postés 93 Statut Membre
 
Problème résolu !!!!!!!!!!!!!!!!!! (YES, je suis trop fort !!! )

Voila où était le soucis: j'avais fait 1 fichiers statistiques.h dans lequel j'avais mis :
#ifndef FONCTIONS_H_
#define FONCTIONS_H_

void statistiques(float nombre_points_obtenus, float nombre_tentatives, float pourcentage_reussite_pile, float pourcentage_reussite_face, float pourcentage_reussite_joueur, int reussite_consecutive);

#endif

Alors que je devais mettre :
#ifndef STATISTIQUES_H_
#define STATISTIQUES_H_

void statistiques(float nombre_points_obtenus, float nombre_tentatives, float pourcentage_reussite_pile, float pourcentage_reussite_face, float pourcentage_reussite_joueur, int reussite_consecutive);

#endif


C'était tout bête, mais en tout cas un grand merci pour votre aide !!!
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Euh, il doit y avoir autre chose...
Car remplacer FONCTIONS par STATISTIQUES ne change rien du tout.
Bref, si ça marche c'est le principal. Maintenant tu comprends pourquoi on demande toujours le code entier ;-).
0