Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cours – Les tableaux – Exercice 2

    13 avril 2006 à 19:56:17

    Ponchoir :)

    Citation : Le cours

    L'énoncé de l'exercice :

    Exercice 2 : créer une fonction moyenneTableau qui calcule et renvoie la moyenne des valeurs.
    Prototype :

    double moyenneTableau(long tableau[], long tailleTableau);


    J’ai réussi à faire le premier exercice sans trop de problême, mais pour celui là, j’ai un petit souci.
    Mon code me renvoie la moyenne, mais sans les décimales. Ou du moins, au lieu d’avoir une moyenne de 18,5 j’obtiens 18.00000 (dans l’exemple que j’ai retenu).

    Je comprends mon erreur, mais je ne vois pas comment la contourner. Dans le cours, il est précisé qu’un quotient de variable entière ne peut pas donner un nombre décimal.

    En ce cas comment une fonction avec le prototype donné plus haut, c'est-à-dire deux paramètres entier en entré, et un décimal en sortie, peut elle fonctionner ?

    D’avance, merci de m’éclairer :)
    • Partager sur Facebook
    • Partager sur Twitter
      13 avril 2006 à 19:58:37

      tu cast la variable long en double:

      int a = 5, b = 2;

      a / b; /* 2 */
      a / (double) b; /* 2.5 */


      c'est tout :)
      • Partager sur Facebook
      • Partager sur Twitter
        13 avril 2006 à 20:07:35

        Il y a des fois.. On cherche trop compliqué. Un grand merci à toi ;)
        • Partager sur Facebook
        • Partager sur Twitter
          13 avril 2006 à 21:44:35

          Tu pouvais aussi faire des tableaux de double. ;)
          • Partager sur Facebook
          • Partager sur Twitter
            14 avril 2006 à 10:45:09

            Si je fais des tableaux doubles, je ne respecte plus le prototype :

            double moyenneTableau(long tableau[], long tailleTableau);


            En fait je galère un peu. Ca marche pas comme je voudrais..

            double test(long a, long b)
                    {
                    double quotient = 0;
                    return quotient = a/ (double) b;
                    }


            Lorsque j'appelle cette fonction comme ceci :

            printf("Resultat du test : %lf\n", test(5, 2));


            J'obtiens à mon grand deséspoir ceci :

            Resultat du test : 0.0000000


            Edit : Me suis débrouillé en bidouillant...
            • Partager sur Facebook
            • Partager sur Twitter
              14 avril 2006 à 12:38:12

              Citation : Matheus07


              J'obtiens à mon grand deséspoir ceci :

              Resultat du test : 0.0000000



              Tu dois te planter dans tes fichiers, ton projet... Vérifie, fait un rebuild all...

              Ceci est correct :

              #include <stdio.h>

              double test (long a, long b)
              {
                 double quotient = 0;
                 return quotient = a / (double) b;
              }

              int main(void)
              {
                 printf("Resultat du test : %f\n", test(5, 2));
                 return 0;
              }


              Resultat du test : 2.500000
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
              Anonyme
                14 avril 2006 à 23:42:33

                J'ai eu le même problème il y a 5 min :p
                Est-ce que mathéo l'avait expliqué dans son cours ? (avant le chapitre sur les tableaux évidemment)
                Je ne me rappelle pas de ça, c'est sans doute mon cerveau qui n'est plus en état après 2 semaines de vacances :lol:
                • Partager sur Facebook
                • Partager sur Twitter

                Cours – Les tableaux – Exercice 2

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown