Code C à débugger ( facile ! )

Résolu
clemax -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Pourriez vous me dire pourquoi ici la valeur de "moyenne" vaut 0 lorsqu'elle est écrite dans le printf ?

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

int main(int argc, char *argv[])
{
	long tableau[4] = {1, 2, 3, 4}, resultat = 0, tailleTableau = 4;
	//Exercice 1 somme des termes
	printf("La somme des termes du tableau fait %ld \n",sommeTableau(tableau, 4));
	//Exercice 2 moyenne des termes
    printf("La moyenne des termes du tableau fait %ld \n",moyenneTableau(tableau, 4));
	system("PAUSE");
	return 0;
}


long sommeTableau(long tableau[], long tailleTableau)
{
	long i, resultat = 0;

    for( i = 0 ; i < tailleTableau ; i++)
	{
		resultat = tableau[i] + resultat;
	}
	return resultat;
}

double moyenneTableau(long tableau[], long tailleTableau)
{
	long i, total = 0;
	double moyenne = 0;

	for( i = 0 ; i < tailleTableau ; i++ )
	{
		total = tableau[i] + total;
	}
	moyenne = total/tailleTableau;
	return moyenne;
}



Merci !

4 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    heu, %l c'est pas pour les entiers ?
    0
  2. clemax
     
    Hum nom ça marche comme ça !
    Par contre ça résout pas le problème du 0 :D
    0
  3. clemax
     
    Ca y est j'ai trouvé ^^ une erreur vraiment nulle :
    Dans le printf, il fallait mettre %lf et non %ld
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      C'est ce que je voulais dire.
      0
  4. WRIDANIOS Messages postés 24 Statut Membre 1
     
    je croi quant tu declare tes fonction avant le main() sa va fonctionner
    0
    1. WRIDANIOS Messages postés 24 Statut Membre 1
       
      une autre chose
      moyenne est de type double pas de type long
      0