Problème affichage nombres décimaux en C

Résolu/Fermé
zatox
Messages postés
641
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
- 22 févr. 2012 à 14:47
zatox
Messages postés
641
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
- 23 févr. 2012 à 00:02
Bonjour, je débute en langage C, est-ce que quelqu'un pourrait m'indiquer pourquoi le code ci-dessous ne m'affiche pas les décimales ?
Merci pour vos réponses

#include <stdio.h>
#include <stdlib.h>

// Prototype de la fonction somme
double moyenneTableau(double tableau[], int tailleTableau);
double moyenne = 0;

int main(int argc, char *argv[])
{
double tableau[4] = {15.0, 23.0, 2.0};

// On appelle la fonction moyenne
moyenneTableau(tableau, 4);
printf("La moyenne du tableau est: %.10f", moyenne);

return 0;
}

double moyenneTableau(double *tableau, int tailleTableau)
{
int i;
int somme = 0;
int nb_postes_different_0 = 0;

for (i = 0 ; i < tailleTableau ; i++)
{
if (tableau[i] != 0)
{
somme = somme + tableau[i];
nb_postes_different_0 ++;
}

}
if (nb_postes_different_0 != 0)
{
moyenne = somme / nb_postes_different_0;
}
else
{
moyenne = 0;
}

return moyenne;
}


Le résultat obtenu est celui-ci:
La moyenne du tableau est: 13.0000000000
Je voudrais avoir;
La moyenne du tableau est: 13.3333333333
Merci pour vos réponses.








2 réponses

KX
Messages postés
16529
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
19 mai 2022
2 955
22 févr. 2012 à 14:52
Lorsque tu fais moyenne = somme / nb_postes_different_0; tu divises un entier par un entier, et ça te renvoie un entier (ici 13). A priori il faudrait que somme soit double pas int !
0
zatox
Messages postés
641
Date d'inscription
samedi 17 février 2007
Statut
Membre
Dernière intervention
26 juin 2020
64
23 févr. 2012 à 00:02
Bonsoir KX, oui super c'est ça merci pour ton aide, avec somme définit comme type double, ça marche.
0