Somme des variable dans tableau en C

Fermé
cole - 20 févr. 2010 à 13:45
 cole - 20 févr. 2010 à 21:28
Bonjour,
voila jai un exercice qui consiste a faire une somme de variable dans un tableau en C, jai programmé mais sa plante et je ne trouve pas l'erreur :s
voila ce que jai fait

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

int sommeTableau(int tableau[], int i)
{
int resultat = 0;
tableau[5] = {20, 100, 50, 80, 1};
for (i = 0; i < 5; i++)
{
resultat = i + i++
}
return resultat;


int main(int argc, char *argv[])
{
int resultat = 0;
int tableau[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
resultat = sommeTableau(tableau);
printf("la somme est de %d\n", resultat);

system("PAUSE");
return 0;
}
A voir également:

9 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 févr. 2010 à 14:17
Salut,
Deux erreurs :
Première : L'erreur vient de là : resultat = i + i++
Il manque un point virgule de fin d'instruction. De plus, je ne vois pas l'intérêt de cette ligne.
Si tu veux sommer les éléments du tableau, tu dois plutôt utiliser tableau[i] qui contient le i+1ème élément du tableau.
Deuxème : tableau[5] = {20, 100, 50, 80, 1};
Que veux-tu faire ???
Cette instruction n'est valable qu'à la déclaration de la variable donc int tableau[5]={20,...} (d'ailleurs la taille est facultative).
De plus, si tu redéfinis la variable pourquoi envoyer tableau en argument ?

Cdlt,
0
c'est vrai dans la fonction sommetableau le tableau[5] = { ... } se servai a rien, fallait remplacer par une variable; c'est fait sa donne sa :
mais il ya toujours une erreur : 19 C:\Dev-Cpp\main3.c too few arguments to function `sommeTableau'
j'ai pas compris cette erreur

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

int sommeTableau(int tableau[], int i)
{
int resultat = 0;
tableau[i];
for (i = 0; i < 5; i++)
{
resultat = i + i++;
}
return resultat;
}

int main(int argc, char *argv[])
{
int resultat = 0;
int tableau[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
resultat = sommeTableau(tableau);
printf("la somme est de %d\n", resultat);

system("PAUSE");
return 0;
}
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 févr. 2010 à 17:27
Je remets pratiquement les mêmes remarques :

tableau[i];
A quoi ça sert ? Cette instruction est complètement inutile.

resultat = i + i++;
Que veux-tu faire avec ça ? Il faut utiliser les éléments du tableau si tu veux en faire la somme, là tu n'utilises que la variable i.

int sommeTableau(int tableau[], int i)
Ta fonction admet deux arguments en paramètre. Pourtant lorsque tu appelles ta fonction, tu n'en mets qu'un seul. D'où le message de ton compilateur.
0
ok, j'ai essayé de changé, cette foi sa compile mais sa ne donne pas ce que je veux, je sais je suis plus tres loin mais je ne vois pas comment travailler sur les variable du tableau , est ce qu'il faut faire une boucle?
voici le code

int sommeTableau(int tableau[], int taille)
{
int resultat = 0, i = 0;
while (i < taille)
{
resultat = tableau[i] + tableau[i];
i++;

}
return resultat;
}

int main(int argc, char *argv[])
{
int resultat = 0, tailledutableau = 10;
int tableau[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
resultat = sommeTableau(tableau, tailledutableau);
printf("la somme est de %d\n", resultat);

system("PAUSE");
return 0;
}
0

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

Posez votre question
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 févr. 2010 à 19:56
resultat = tableau[i] + tableau[i];
Ceci met dans resultat l'indice d'élément i du tableau et le multiplie par deux. Il ne récupère pas la somme précédemment calculer.
Mais ça brûle ;-))).
0
sa me donne 200, jcomprend pas... :o encor un petit indice et je trouverai bien ...
mon prof m'avait dit que c'était facile les tableaux, je vais le tuer mdr
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
20 févr. 2010 à 21:14
Bien sûr que ça donne 200.
A chaque itération tu mets dans resultat le double de l'élément du tableau. Donc lors de la dernière itération, tu vas faire 2*100=100.
Que penses-tu de la ligne suivante ?
resultat = resultat + tableau[i];
;-))).
Cdlt,
0
eric1708 Messages postés 101 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 26 janvier 2025 128
20 févr. 2010 à 21:16
Il suffit à priori de remplacer:


resultat = tableau[i] + tableau[i];


par:


resultat = resultat+ tableau[i];

Bon courage!

Eric.
0
franchement chapeau, c'était évident quand on voit la réponse (jai tapé plusieur foi ma tete telment c'était evident) i mresque a faire la moyenne des valeurs contenu dans le tableau, puis crée un 2em tableau et copier les variable du 1er T dans le second, je doi crée une constante valeurMax pour mettre les valeur du tableau a 0 quand celles ci dépasse la valeur max, et enfin crée une fonction qui ordonne les valeur du tableau dans lordre croissant. j'espere que j'y arriverai tout seul. encor merciiii fiddy
0