je me sens bête mais même après avoir relu maintes fois le cours sur les tableaux en C, je ne vois pas comment faire l'exercice 1:
Créez une fonctionsommeTableauqui renvoie la somme des valeurs contenues dans le tableau (utilisez unreturnpour renvoyer la valeur). Pour vous aider, voici le prototype de la fonction à créer :
intsommeTableau(inttableau[],inttailleTableau);
(j’espère que le copie/colle a marché ;-))
Je suis sur que la solution est simple vu que c'est l'exercice 1 (en général c'est le plus simple) mais je vois pas. Si quelqu'un pouvait m'éclairer sur comment faire, ce serait très sympa. Pour l'instant j'ai fait en additionnant chaque valeur une par une, mais sur un tableau de 2000 valeurs, je me vois mal le faire^^
PS: c'est peut-être un doublon, mais sur les 2100 pages que comporte le forum C, j'en ai parcouru 15 puis j'ai arrêté
C'est plutôt une mauvaise idée de donner la solution, il vaut mener le PO à la trouver lui-même. Et c'est encore plus une mauvaise idée quand la solution est mauvaise. La fonction est censée marcher pour des tableaux de n'importe quelle taille, ici ce n'est pas le cas. De plus, main() n'est pas une forme de main valide (int main(void) à la place) et le code est mal indenté (il faudrait aussi utiliser les balises de code).
sommeTableau devra parcourir un tableau élément par élément.
Chaque élément sera ajouté à une valeur initialisé à 0 donc on aura quelque chose de la forme,
#include <stdio.h>
int sommeTableau(int tableau[], int taille);
int main(void){
/* pour le test de la fonction */
int array[] = {5, 3, 9};
int somme = sommeTableau(array, 3);
printf("%d\n", somme);
return 0;
}
int sommeTableau(int tableau[], int taille){
int s = 0; /* somme initialisée à la valeur 0 */
int i; /* index du tableau */
for (...){
/* à compléter */
}
return s;
}
Après il faut lire le cours sur les boucles et ça devrait rouler...
Non, main() n'est pa valide. Ça peut compiler, mais avec avertissement. La norme ne reconnaît que deux formes de main, int main(void) et int main(int argc, char * argv[]).
Donner des codes avec de mauvaises pratiques n'aide pas le débutant, lui donnen la solution non plus, puisque cela ne le pourre pas à réfléchir et ne l'aide pas à bien comprendre où il bloquait. Et donc je préfère corriger celui qui a aidé pour que le PO ne pense pas que cette solution était bonne (ce qui serait assez embêtant).
- Edité par yo@n97one 16 septembre 2018 à 23:59:32
Salut, s'il te plait tu peut me donner la signification du mot void dans le main (main(void)) .
Ca veut simplement dire que la fonction ne prend pas d'argument, mais tu aurais pu trouver cela tout seul...
SanaeMachkour a écrit:
et comment le main comme une fonction à des paramètres (argc , argv) et elle est void ??
Ces deux solutions sont possibles car elles sont présentées dans la norme comme seules possibilités. Il y a beaucoup de discussions sur ce sujet autant dans ce forum que dans stackoverflow.
Par contre en C++, peu importe le void ou pas, d'ailleurs on préférera sansvoid.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Bonne journée...
Bonne journée...