Tableau en C
Discutez d'informatique ici !
-
jujudu597
- Membre Naturel
- Messages: 87
- Enregistré le: 20 Fév 2014, 17:13
-
par jujudu597 » 31 Mar 2015, 10:31
Bonjour,
J'ai un problème avec les tableaux en C lors de la compilation.
EN effet, je chercher a crée un tableau de taille (n+1) en le remplissant successivement.
Cependant, j'ai un problème au niveau de la syntaxe.
Voici mon code en espérant que vous pourriez m'aider. Merci d'avance!
int nbArbresIt(int n) {
int tableau[n+1];
int i, k;
tableau[0] = 1;
for ( i = 1 ; i < (n + 1) ; i++ ){
tableau[i] = 0;
for ( k = 0 ; k < i ; k++ ){
tableau[i] = tableau[i] + tableau[k]*tableau[i-1-k];
}
}
return tableau[n+1];
}
-
ampholyte
- Membre Transcendant
- Messages: 3940
- Enregistré le: 21 Juil 2012, 07:03
-
par ampholyte » 31 Mar 2015, 11:06
Bonjour,
Il y a quelques problèmes dans ton code :
1) Il n'est pas recommandé de déclarer un tableau comme tu le fais en C :
- Code: Tout sélectionner
int tableau[n + 1];
Cela n'est pas compatible avec tous les compilateurs, il est préférable que tu utilises la méthode suivante :
- Code: Tout sélectionner
int *tableau;
/* Avec un malloc */
tableau = malloc((n + 1) * sizeof(int));
memset(tableau, 0, (n + 1) * sizeof(int));
/* Ou alors directement */
tableau = calloc((n + 1), sizeof(int));
(Ne pas oublié de free à la fin).
- Code: Tout sélectionner
free(tableau);
tableau = NULL;
Pourquoi as-tu besoin de n + 1 éléments ?
2) Si ton tableau contient (n + 1) éléments alors on aura tableau[0], ...., tableau[n] et non tableau[n + 1] comme tu fais dans ton return.
3) Qu'est-ce que tu essayes de faire dans ta boucle for ?
-
jujudu597
- Membre Naturel
- Messages: 87
- Enregistré le: 20 Fév 2014, 17:13
-
par jujudu597 » 05 Avr 2015, 19:32
Merci bcp pour votre réponse.
Grave a vous j'ai pu voir ou été mes erreurs!
Merci encore
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités