Moyenne d'un tableau

Fermé
Salem - 24 janv. 2013 à 13:18
kratosmindfreak Messages postés 43 Date d'inscription mercredi 23 janvier 2013 Statut Membre Dernière intervention 1 février 2013 - 24 janv. 2013 à 14:26
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 mercredi 23 janvier 2013 Statut Membre Dernière intervention 1 février 2013
24 janv. 2013 à 13:37
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
24 janv. 2013 à 13:42
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
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
24 janv. 2013 à 13:50
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 mercredi 23 janvier 2013 Statut Membre Dernière intervention 1 février 2013
24 janv. 2013 à 13:59
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
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 mercredi 23 janvier 2013 Statut Membre Dernière intervention 1 février 2013
24 janv. 2013 à 14:18
ui c'est ca :D
0
Utilisateur anonyme
24 janv. 2013 à 14:20
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 mercredi 23 janvier 2013 Statut Membre Dernière intervention 1 février 2013
24 janv. 2013 à 14:26
hhhh moi aussi je trouve ca bizzare
0