Ma division ne marche pas
Résolu/Fermé
A voir également:
- Ma division ne marche pas
- Microsoft skype division - Télécharger - Téléphonie & Visio
- Division euclidienne ti 83 - Forum calculatrices
- Sommeprod division - Forum Excel
- Symbole division clavier mac - Guide
- Excel division avec virgule ✓ - Forum Excel
2 réponses
awesome33
Messages postés
32
Date d'inscription
samedi 7 décembre 2013
Statut
Membre
Dernière intervention
26 juillet 2014
68
22 juil. 2014 à 02:01
22 juil. 2014 à 02:01
Salut,
Dans cette
Bye
M
Dans cette
fonction double moyenneTableau(int tableau[], int tailleTableau)tas en sortie un double , moyen est de type double oui Mais Dans ton printf t'affiche la valeur decimal tu fait
printf("%d \n\n", moyenne);mais il faut faire
printf("%f \n\n", moyenne);
Bye
M
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
22 juil. 2014 à 09:06
22 juil. 2014 à 09:06
Bonjour,
En plus de ce que dit awesome33 : printf("%f...",moyenne) au lieu de "%d" pour afficher un double, il faut faire attention au niveau de la division :
moyenne=(double)somme/tailleTableau; sinon tu auras un arrondi (division entière).
Cdlt,
En plus de ce que dit awesome33 : printf("%f...",moyenne) au lieu de "%d" pour afficher un double, il faut faire attention au niveau de la division :
moyenne=(double)somme/tailleTableau; sinon tu auras un arrondi (division entière).
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 juil. 2014 à 00:36
23 juil. 2014 à 00:36
Ben non justement...
Je copie-colle la déclaration de somme dans la fonction moyenneTableau() :
int somme = 0;
int veut dire entier.
Donc somme/tailleTableau est une division d'entier. Donc, soit tu castes (cf. mon post précédent), soit tu fais double somme=0;
Je copie-colle la déclaration de somme dans la fonction moyenneTableau() :
int somme = 0;
int veut dire entier.
Donc somme/tailleTableau est une division d'entier. Donc, soit tu castes (cf. mon post précédent), soit tu fais double somme=0;
justement tu te trompes mais c vrai ke je t'ai mal expliquer. La variable somme est un nombre entier car c'est une somme de nombre entier. C'est la variable moyenne qui doit être de type double car il y a de grande chance qu'une moyenne soit un nombre décimal mais je le repete dans mon cas c'est inutile parce que le resultat de ma moyenne est... 7 !
Mais merci quand même pour l'aide que tu as voulu me procurer.
Mais merci quand même pour l'aide que tu as voulu me procurer.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 juil. 2014 à 15:16
23 juil. 2014 à 15:16
C'est toi qui te trompes...
C'est la variable moyenne qui doit être de type double
Oui, mais tu parlais de la variable "somme".
Mais même, si tu parles cette fois de la variable "moyenne", tu te trompes encore...
En effet, moyenne est de type double. Mais une division de nombres entiers (somme / tailleTableau) retourne un entier (partie entière). Ensuite, ce nombre sera casté en double avant d'être stocké dans "moyenne". Mais trop tard, tu perds l'arrondi. Dans ton cas, effectivement, ça ne se verra pas (28/4=7). Mais si tu fais un essai avec d'autres notes, ça se verra.
C'est la variable moyenne qui doit être de type double
Oui, mais tu parlais de la variable "somme".
Mais même, si tu parles cette fois de la variable "moyenne", tu te trompes encore...
En effet, moyenne est de type double. Mais une division de nombres entiers (somme / tailleTableau) retourne un entier (partie entière). Ensuite, ce nombre sera casté en double avant d'être stocké dans "moyenne". Mais trop tard, tu perds l'arrondi. Dans ton cas, effectivement, ça ne se verra pas (28/4=7). Mais si tu fais un essai avec d'autres notes, ça se verra.
23 juil. 2014 à 00:26