Moyenne d'un tableau

Salem -  
kratosmindfreak Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans un programme, j'ai défini ces 2 fonctions :
int sommeTableau(int tableau[], int taille) //somme des éléments du tableau
{
    int i,somme=0;
    for(i=0;i<taille;i++)
        somme=somme+tableau[i];
    return somme;
}
float moyenneTableau(int tableau[], int taille)//moyenne des éléments du tableau
{
   return((float) sommeTableau(tableau,taille)/(float) taille);
}

Pour le tableau
    int t[10]={5, 6, 4, 10, -2, 3, 1, 0, 0, -5};

et l'instruction
    printf("\n\n\nLa somme est : %d\nLa moyenne est : %f\n\n", sommeTableau(t,10), moyenneTableau(t,10));


J'obtiens bien comme résultat que la somme est bien 22, mais la moyenne devant être 2.200, j'obtiens 0.000. Où est le problème ?

Merci

A voir également:

8 réponses

kratosmindfreak Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
ca marche il n y'a pas un probleme je pense que tu as oublier de faire %f a la place de %d dans printf
0
Utilisateur anonyme
 
Bonjour

Ça marche très bien chez moi aussi, et aucune erreur de %f à la place de %d.
Tu n'aurais pas un peu trop simplifié le code pour nous le montrer ?
0
Salem
 
Bonjour
Voici le programme
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int t[10]={5, 6, 4, 10, -2, 3, 1, 0, 0, -5};
    affiche(t,10);
    printf("\n\n\nLa somme est : %d\nLa moyenne est : %f\n\n", sommeTableau(t,10), moyenneTableau(t,10));
    ordonnerTableau(t,10);
    affiche(t,10);
    maximumTableau(t,10,0);
    affiche(t,10);

}

Voici le fichier des fonctions
#include<stdio.h>
#include<stdlib.h>
#include"fonctions sur tableaux.h"
void affiche(int* tableau, int taille) // pour afficher un tableau
{
    int i;
    for(i=0;i<taille;i++)
        printf("%d, ",tableau[i]);
    printf("\n");
}
int sommeTableau(int tableau[], int taille) //somme des éléments du tableau
{
    int i,somme=0;
    for(i=0;i<taille;i++)
        somme=somme+tableau[i];
    return somme;
}
float moyenneTableau(int tableau[], int taille)//moyenne des éléments du tableau
{
   return((float) sommeTableau(tableau,taille)/(float) taille);
}
void copie(int tableauOriginal[],int tableauCopie[], int taille) //copier un tableau dans un autre
{
    int i;
    for(i=0;i<taille;i++)
        tableauCopie[i]=tableauOriginal[i];
}
void maximumTableau(int tableau[], int taille, int valeurMax)//remettre à 0 toutes les cases du tableau ayant une valeur supérieure à un maximum
{
    int i;
    for(i=0;i<taille;i++)
        if(tableau[i]>valeurMax)
        tableau[i]=0;
}
void ordonnerTableau(int tableau[], int taille) //ordonner un tableau dans l'ordre croissant
{
    int i,j,x;
    for(i=0;i<taille-1;i++)
        for(j=i+1;j<taille;j++)
        if(tableau[j]<tableau[i])
    {
        x=tableau[i];
        tableau[i]=tableau[j];
        tableau[j]=x;
    }

}


Tout est bon, sauf pour la fonction moyenne.
0
Utilisateur anonyme
 
Dans ton main, il n'y a pas d'autre include que stdio.h et stdlib.h ? Je me demande comment il peut trouver tes fonctions...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kratosmindfreak Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
il faut faire #include"fonctions sur tableaux.h" dans le fichier qui contient la fonction main pas dans le header qui contient les fonctions en plus il faut ajouter les prototypes des fonction dans le fichier fonctions sur tableaux.h
0
Salem
 
Ah bah oui c'est ça, ça marche maintenant. Merci beaucoup. (j'avais déjà les prototypes dans le fichier.h)

Donc en gros, j'écris les prototypes sur le fichier header, et je l'inclus dans "main.c", sans l'inclure dans "le fichier des fonctions.c", c'est bien ça ?

J'avoue aussi que c'est bizarre que les autres fonctions aient marché avant
0
kratosmindfreak Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
ui c'est ca :D
0
Utilisateur anonyme
 
Moi, j'aimerais bien qu'on m'explique comment ça a pu compiler sans les prototypes des fonctions dans le main...
0
kratosmindfreak Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 
hhhh moi aussi je trouve ca bizzare
0