Tableau en C

Discutez d'informatique ici !
jujudu597
Membre Naturel
Messages: 87
Enregistré le: 20 Fév 2014, 17:13

Tableau en C

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];
}



Avatar de l’utilisateur
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

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite