Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1723 connectés 

  FORUM HardWare.fr
  Programmation
  C

  problème de calcul d'une moyenne en 'double'

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de calcul d'une moyenne en 'double'

n°2002964
jasinski13
Posté le 19-06-2010 à 14:26:43  profilanswer
 

Bonjour, donc voilà j'ai du réaliser un exercice l'énoncé est dans le code, mais j'ai un petit souci je voudrais que ma moyenne s'affiche exactement donc le type de ma variable est un 'double' et ça m'affiche 3.0000 mais pas avec la précision après la virgule ...
merci de 'laide

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. /*
  4. Exercice 2 : créer une fonction moyenneTableau qui calcule et renvoie la moyenne des valeurs.
  5. Prototype :
  6. Code : C
  7. double moyenneTableau(int tableau[], int tailleTableau);
  8. La fonction renvoie un double car une moyenne est parfois un nombre décimal (souvent même  )
  9. */
  10. double moyenneTableau(int tableau[], int tailleTableau);
  11. int main(int argc, char *argv[])
  12. {
  13.     int tableau1[4] = {1, 2, 3, 5};
  14.     int i = 0;
  15.     printf("=== TABLEAU ===\n" );//affichage tableau
  16.     for(i = 0; i < 4; i++)
  17.     {
  18.         printf("%d\n", tableau1[i]);
  19.     }
  20.     // Fin affichage tableau
  21.     printf("\n--- MOYENNE DU TABLEAU ---" );
  22.     printf("\n%lf\n", moyenneTableau(tableau1, 4));// appelle de la fonction sommeTableau
  23. }
  24. double moyenneTableau(int tableau[], int tailleTableau)
  25. {
  26.     int i = 0, somme = 0;
  27.     double moyenne = 0;
  28.     for(i = 0; i < tailleTableau; i++)//calcule la somme pour chaque terme du tableau
  29.     {
  30.         somme = somme + tableau[i];
  31.     }
  32.     moyenne = somme/tailleTableau;
  33.     return moyenne;
  34. }

mood
Publicité
Posté le 19-06-2010 à 14:26:43  profilanswer
 

n°2002978
jasinski13
Posté le 19-06-2010 à 15:50:58  profilanswer
 

Personne ne vois pourquoi?

n°2002979
Joel F
Real men use unique_ptr
Posté le 19-06-2010 à 15:53:25  profilanswer
 

moyenne = somme/tailleTableau
 
tout ça c'est des int, int/int = int, donc les virgules sont tronquées.
 
Donc:
 
moyenne = somme/(double)(tailleTableau);

n°2002996
jasinski13
Posté le 19-06-2010 à 17:38:59  profilanswer
 

Merci donc si je comprend bien il suffit de juste mettre soit la somme ou soit la taille du tableau en 'double' pour que ca marche?
 
Merci encore

n°2003010
gilou
Modérateur
Modzilla
Posté le 19-06-2010 à 19:22:11  profilanswer
 

C'est une question de typage des opérations et de conversion automatique:
int/int -> int (éventuellement ensuite converti en double si ta variable pour stocker le  résultat est de type double)
double/double -> double
int/double -> double
double/int -> double
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2003534
Sve@r
Posté le 21-06-2010 à 21:51:47  profilanswer
 

Salut
 
Une opération arithmétique est faite dans le type le plus large des opérandes impliqués.
Si tu divises 7 par 3 tu obtiendras 2. Mais si tu divises 7.0 par 3 ou 7 par 3.0 tu obtiendras 2.33333
 
Attention, en cas d'opération intermédiaire, celle-ci ne prend en compte que les opérandes utilisés.
Exemple: 7/3 + 2.0   => l'opération se fera d'abord avec 7/3 => résultat 2 puis elle continuera avec +2.0 => résultat final 4.0
Bonne méthode: 7.0/3 + 2 ou bien 7 / 3.0 + 2 ou bien (double)7 / 3 + 2
 

jasinski13 a écrit :

il suffit de juste mettre soit la somme ou soit la taille du tableau en 'double' pour que ca marche?


Pas forcément. Un cast lors de l'opération suffit
moyenne=(double)somme / tailleTableau


Message édité par Sve@r le 21-06-2010 à 21:53:37

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  problème de calcul d'une moyenne en 'double'

 

Sujets relatifs
petit problème de div à résoudrePYTHON PHP BDD : Gros problème d'encodage
probleme d'addition de différents scriptsProblème d'affichage d'image avec imagepng (débutant)
VBA : Problème recherchev VlookupProbleme sur la copie de fichier
[c] probleme codeblocksProblème LIMIT avec requête préparée PDO
Comment interdire le double clic sur un bouton dans une anim flash ?[RESOLU] Problème Requête Mondrian/JPivot
Plus de sujets relatifs à : problème de calcul d'une moyenne en 'double'


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR