Somme d'elements d'un tableau en C
Résolu/Fermé
flight7218
Messages postés
13
Date d'inscription
dimanche 13 mai 2007
Statut
Membre
Dernière intervention
12 septembre 2011
-
22 mai 2007 à 11:46
mexisu - 25 juin 2019 à 15:03
mexisu - 25 juin 2019 à 15:03
A voir également:
- Somme de deux tableaux en c
- Formule somme excel colonne - Guide
- Fusionner deux tableaux excel - Guide
- Somme si couleur - Guide
- Tableaux croisés dynamiques - Guide
- Deux ecran pc - Guide
4 réponses
Ce topic date pas mal maintenant ! :p
Mais bon, vu que je suis tombé dessus, autant y participer et donner un plus.
Pour ceux qui ont vu les pointeurs ou pour ceux qui veulent une correction de l'exercice proposé sur le SDZ, l'exercice demandé en C peut s'écrire ainsi :
#include <stdio.h>
#include <stdlib.h>
void sommeTableau (int tableau[], int *pointeursomme);
int main()
{
int somme=0;
int tableau[4]={2,5,7,8};
sommeTableau(tableau,&somme);
printf("%d", somme);
return 0;
}
void sommeTableau (int tableau[], int *pointeursomme)
{
int i=0;
for(i=0;i<4;i++)
{
*pointeursomme = *pointeursomme + tableau[i];
}
}
Voila, j'espère que ça aidera certains ! :)
Mais bon, vu que je suis tombé dessus, autant y participer et donner un plus.
Pour ceux qui ont vu les pointeurs ou pour ceux qui veulent une correction de l'exercice proposé sur le SDZ, l'exercice demandé en C peut s'écrire ainsi :
#include <stdio.h>
#include <stdlib.h>
void sommeTableau (int tableau[], int *pointeursomme);
int main()
{
int somme=0;
int tableau[4]={2,5,7,8};
sommeTableau(tableau,&somme);
printf("%d", somme);
return 0;
}
void sommeTableau (int tableau[], int *pointeursomme)
{
int i=0;
for(i=0;i<4;i++)
{
*pointeursomme = *pointeursomme + tableau[i];
}
}
Voila, j'espère que ça aidera certains ! :)
nauno
Messages postés
342
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
14 mai 2009
60
22 mai 2007 à 11:49
22 mai 2007 à 11:49
tu y étais presque, allez un petit effort!!!
printf("Somme des 10 elements du tableau: %d",tot);
int tab[10]; int i=0; int tot=0; for(i=0;i<=9;i++) { printf(" donnez la valeur N° %ld",i); scanf("%ld",tab[i]); tot=tot+tab[i]; }
printf("Somme des 10 elements du tableau: %d",tot);
flight7218
Messages postés
13
Date d'inscription
dimanche 13 mai 2007
Statut
Membre
Dernière intervention
12 septembre 2011
22 mai 2007 à 21:36
22 mai 2007 à 21:36
merci à toi "nauno" ,( flight7218)
sur ton printf dans ta fonction, tu donne %ld soit un nombre décimal, alors que tu as déclaré plus haut que c'était un int. donc il faut que tu mette %d et non %lf ou alors que tu change le type de ta variable quand tu la déclare.
ensuite lors de ton scanf tu met %d ce qui est exact car tu veu bien un entier. mais ton paramètre est incorect.
en effet tu lui indique ,tableau[i]. il va donc comprendre :" écris la valeur que l'on a entré sur la variable tableau[i]".
alors que tu veux écrire dans la case i de ton tableau.
il faut donc écrire : scanf("%d",&tableau[i]);
voici ton algo corrigé :
#include <stdio.h>
#include <stdlib.h>
int sommetableau(int *tableau, int tailletableau);
int main(int argc,char *argv[])
{
int tabl[5];
sommetableau(tabl,5);
return 0;
system("PAUSE");
}
int sommetableau(int *tableau, int tailletableau)
{
int i,somme=0;
for(i=0;i<tailletableau;i++)
{
printf("donner un nombre entier numero %d au hazard:\n",i);
scanf("%d",&tableau[i]);
somme=somme+tableau[i];
}
printf("voici la somme obtenu:%d",somme);
return somme;
}
ensuite lors de ton scanf tu met %d ce qui est exact car tu veu bien un entier. mais ton paramètre est incorect.
en effet tu lui indique ,tableau[i]. il va donc comprendre :" écris la valeur que l'on a entré sur la variable tableau[i]".
alors que tu veux écrire dans la case i de ton tableau.
il faut donc écrire : scanf("%d",&tableau[i]);
voici ton algo corrigé :
#include <stdio.h>
#include <stdlib.h>
int sommetableau(int *tableau, int tailletableau);
int main(int argc,char *argv[])
{
int tabl[5];
sommetableau(tabl,5);
return 0;
system("PAUSE");
}
int sommetableau(int *tableau, int tailletableau)
{
int i,somme=0;
for(i=0;i<tailletableau;i++)
{
printf("donner un nombre entier numero %d au hazard:\n",i);
scanf("%d",&tableau[i]);
somme=somme+tableau[i];
}
printf("voici la somme obtenu:%d",somme);
return somme;
}
Est ce que vous pouvez me dire pourquoi ce code ne marche pas?
Merci de me répondre!
#include <stdio.h>
#include <stdlib.h>
int sommetableau(int *tableau, int tailletableau);
int main(int argc,char *argv[])
{
int tabl[5];
sommetableau(tabl,5);
return 0;
system("PAUSE");
}
int sommetableau(int *tableau, int tailletableau)
{
int i,somme=0;
for(i=0;i<tailletableau;i++)
{
printf("donner un nombre entier numero %ld au hazard:\n",i);
scanf("%d",tableau[i]);
somme=somme+tableau[i];
}
printf("voici la somme obtenu:%d",somme);
return somme;
}
Merci de me répondre!
#include <stdio.h>
#include <stdlib.h>
int sommetableau(int *tableau, int tailletableau);
int main(int argc,char *argv[])
{
int tabl[5];
sommetableau(tabl,5);
return 0;
system("PAUSE");
}
int sommetableau(int *tableau, int tailletableau)
{
int i,somme=0;
for(i=0;i<tailletableau;i++)
{
printf("donner un nombre entier numero %ld au hazard:\n",i);
scanf("%d",tableau[i]);
somme=somme+tableau[i];
}
printf("voici la somme obtenu:%d",somme);
return somme;
}
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
11 juin 2016 à 15:27
11 juin 2016 à 15:27
salut, voici tes erreurs sommetableau(tabl,5); et int tabl[5];
il faut plutôt écrire : sommetableau(tableau, 5); et int tableau[5];
ton prototype aussi n'est pas bon.
Écris plutôt comme ceci : int sommeTableau(int tableau[], int tailleTableau);
il faut plutôt écrire : sommetableau(tableau, 5); et int tableau[5];
ton prototype aussi n'est pas bon.
Écris plutôt comme ceci : int sommeTableau(int tableau[], int tailleTableau);
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
>
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
11 juin 2016 à 16:39
11 juin 2016 à 16:39
J'espère que depuis presque 6 ans, il est passé à autre chose...
Écris plutôt comme ceci : int sommeTableau(int tableau[], int tailleTableau);
Je ne vois pas en quoi c'est faux... Si c'est pour signaler qu'il faut mettre int tableau[] au lieu de int *tableau, c'est exactement pareil.
Écris plutôt comme ceci : int sommeTableau(int tableau[], int tailleTableau);
Je ne vois pas en quoi c'est faux... Si c'est pour signaler qu'il faut mettre int tableau[] au lieu de int *tableau, c'est exactement pareil.
jeandchanel
Messages postés
135
Date d'inscription
vendredi 10 juin 2016
Statut
Membre
Dernière intervention
31 mai 2017
13 juin 2016 à 09:03
13 juin 2016 à 09:03
Bonjour,
cher fiddy, la difference c'est au niveau du 't' : int sommetableau[]; au lieu de int sommeTableau[]; pour le reste vous avez raison.
cher fiddy, la difference c'est au niveau du 't' : int sommetableau[]; au lieu de int sommeTableau[]; pour le reste vous avez raison.
25 juin 2019 à 15:03