Programme de somme de tableau qui fonctionne pas
Résolu/Fermé
Onyx67
Messages postés
132
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
18 août 2016
-
Modifié par Onyx67 le 21/04/2014 à 11:50
Onyx67 Messages postés 132 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 18 août 2016 - 21 avril 2014 à 21:35
Onyx67 Messages postés 132 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 18 août 2016 - 21 avril 2014 à 21:35
A voir également:
- Programme de somme de tableau qui fonctionne pas
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Formule somme excel colonne - Guide
- Trier tableau excel - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 21/04/2014 à 14:05
Modifié par fiddy le 21/04/2014 à 14:05
Bonjour,
#include <math.h>
Inutile ici. Il vaut mieux éviter d'inclure les headers inutiles.
#include <stdlib.h>
Inutile aussi ici. Mais là c'est moins gênant car tôt ou tard, tu t'en serviras probablement dans ton code.
int tableau[4]={10, 15, 3};
Ainsi, tu créés un tableau à 4 éléments : 10, 15, 3 et 0. Est-ce voulu le dernier 0 ?
moyenneTableau(tableau[4], taille);
tableau[4] est de type entier. De plus, cet entier n'existe pas car ton tableau a 4 cases. Le premier élément est : tableau[0], le dernier est tableau[3]. Ca peut faire planter le programme.
Si tu veux envoyer le tableau (ou plutôt l'adresse du premier élément du tableau), il faut écrire : moyenneTableau(tableau, taille);
printf("Somme : %d", somme);
Que vaut "somme" ? Il n'existe pas dans la fonction main().
Il aurait fallu faire : double somme; en début de main()
Puis : somme=moyenneTableau(tableau, taille); pour récupérer la valeur retournée par la fonction moyenneTableau().
De plus, "somme" est de type double. Il faut donc l'afficher en tant que telle : printf("Somme : %f\n", somme); J'ai mis aussi un '\n' à la fin pour forcer l'affichage (et puis ça sera plus propre).
Dans la fonction moyenneTableau(),
int somme = 0; => somme est de type double. Je te laisse corriger.
Et enfin, il faut diviser par le nombre d'éléments pour calculer la moyenne. Donc : return (double)somme/tailleTableau;
Sinon pour info, tu ne respectes pas l'énoncé. On te demande d'utiliser le prototype : int moyenne... et tu utilises double moyenne... Est-ce normal ?
Corrige ton code. Et si ça ne fonctionne toujours pas, reposte ton code avec les corrections. Et la prochaine fois, merci d'utiliser les balises "code" (situé à droite du bouton "souligné") et sélectionne "C" dans la liste déroulante. Sinon c'est illisible.
Cdlt,
Google is your friend
#include <math.h>
Inutile ici. Il vaut mieux éviter d'inclure les headers inutiles.
#include <stdlib.h>
Inutile aussi ici. Mais là c'est moins gênant car tôt ou tard, tu t'en serviras probablement dans ton code.
int tableau[4]={10, 15, 3};
Ainsi, tu créés un tableau à 4 éléments : 10, 15, 3 et 0. Est-ce voulu le dernier 0 ?
moyenneTableau(tableau[4], taille);
tableau[4] est de type entier. De plus, cet entier n'existe pas car ton tableau a 4 cases. Le premier élément est : tableau[0], le dernier est tableau[3]. Ca peut faire planter le programme.
Si tu veux envoyer le tableau (ou plutôt l'adresse du premier élément du tableau), il faut écrire : moyenneTableau(tableau, taille);
printf("Somme : %d", somme);
Que vaut "somme" ? Il n'existe pas dans la fonction main().
Il aurait fallu faire : double somme; en début de main()
Puis : somme=moyenneTableau(tableau, taille); pour récupérer la valeur retournée par la fonction moyenneTableau().
De plus, "somme" est de type double. Il faut donc l'afficher en tant que telle : printf("Somme : %f\n", somme); J'ai mis aussi un '\n' à la fin pour forcer l'affichage (et puis ça sera plus propre).
Dans la fonction moyenneTableau(),
int somme = 0; => somme est de type double. Je te laisse corriger.
Et enfin, il faut diviser par le nombre d'éléments pour calculer la moyenne. Donc : return (double)somme/tailleTableau;
Sinon pour info, tu ne respectes pas l'énoncé. On te demande d'utiliser le prototype : int moyenne... et tu utilises double moyenne... Est-ce normal ?
Corrige ton code. Et si ça ne fonctionne toujours pas, reposte ton code avec les corrections. Et la prochaine fois, merci d'utiliser les balises "code" (situé à droite du bouton "souligné") et sélectionne "C" dans la liste déroulante. Sinon c'est illisible.
Cdlt,
Google is your friend
Onyx67
Messages postés
132
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
18 août 2016
1
21 avril 2014 à 21:35
21 avril 2014 à 21:35
Merci beaucoup!! Maintenant j'ai compris mon erreur, c'était d'envoyer la case n°4 du tableau alors que je voulais envoyer le tableau entier comportant 4 cases!
Sauf que j'avais pas besoin d'effectuer la précision!
Pour le reste c'est juste que c'était un code nouveau et ancien qui se mélangeaient, du coup c'était normal qu'il y avait plein d'erreurs, mais heureusement qu'on m'a donné la solution ça m'a beaucoup aidé!
Cordialement
Sauf que j'avais pas besoin d'effectuer la précision!
Pour le reste c'est juste que c'était un code nouveau et ancien qui se mélangeaient, du coup c'était normal qu'il y avait plein d'erreurs, mais heureusement qu'on m'a donné la solution ça m'a beaucoup aidé!
Cordialement