Retour d'un mauvais résultat pointeur tableau
dipouede
Messages postés
157
Statut
Membre
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde, voila je débute en C et il m'arrive un petit problème :
int sommetableau( int tablo[], int tailletablo );
int main(int argc, char *argv[])
{
int tableau[5], i;
for (i=0 ; i<5 ; i++)
{
tableau[i]=1;
}
printf(" la somme du tableau de 5 nombres vaut : %d\n", sommetableau(tableau,5));
system("PAUSE");
return 0;
}
int sommetableau( int tablo[], int tailletablo )
{
int i, somme;
for (i=0 ; i<tailletablo ; i++);
{
somme = somme + tablo[i];
}
return somme;
}
comme vous pouvez le voir j'essaye de faire la somme des valeurs enregistrées dans le tableau,
et il me retourne ( si je comprends bien ) la somme des adresses des variables qui sont dans le tableau. j'ai beau mettre des "*" ou des "&" le problème reste le même.
pourriez vous m'expliquez comme changer cela?
d'avance je vous remercie
int sommetableau( int tablo[], int tailletablo );
int main(int argc, char *argv[])
{
int tableau[5], i;
for (i=0 ; i<5 ; i++)
{
tableau[i]=1;
}
printf(" la somme du tableau de 5 nombres vaut : %d\n", sommetableau(tableau,5));
system("PAUSE");
return 0;
}
int sommetableau( int tablo[], int tailletablo )
{
int i, somme;
for (i=0 ; i<tailletablo ; i++);
{
somme = somme + tablo[i];
}
return somme;
}
comme vous pouvez le voir j'essaye de faire la somme des valeurs enregistrées dans le tableau,
et il me retourne ( si je comprends bien ) la somme des adresses des variables qui sont dans le tableau. j'ai beau mettre des "*" ou des "&" le problème reste le même.
pourriez vous m'expliquez comme changer cela?
d'avance je vous remercie
3 réponses
-
La seule erreur possible que je vois rapidement, c'est de mettre somme à 0
Et j'ai testé avec succès. -
Quand je met somme = 0 je me retrouve avec le même problème
-
int sommetableau( int tablo[], int tailletablo ) { int i, somme=0; for (i=0 ; i<tailletablo ; i++); { somme = somme + tablo[i]; } return somme; }Fonctionne très bien chez moi.
quel est ton compilateur ?
essai, sans garantie, de modifier ta fonction en :
int sommetableau( int *tablo, int tailletablo )
Il y a normalement une conversion automatique de tableau vers pointeur.