Void

Résolu
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

  1. essayez avec "%lf" comme format au lieu de "%.2f"
    1. Contributeur
      Non, ce n'est pas %lf qu'il faut mettre mais bien des %f.
  2. Contributeur
    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é).
    1. 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...
      1. Contributeur
        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)
    2. Ils le sont tous...
      1. Contributeur
        On attend toujours ton main()... Du moins, tu veux de l'aide.
    3. Pourrait-on avoir les nombres avant et après ?
      Pour essayer de mieux comprendre ;)
      Merci
      1. 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 !!!
        1. Contributeur
          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 ;-).