Saisir un tableau en c

Résolu
hela -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
comment déclarer et saisir un tableau en c
A voir également:

1 réponse

Tsumiki Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Pour déclarer un tableau en C, tu as plusieurs façons de faire. En voici trois façons principales.

Première façon :

La première façon consiste à déclarer ton tableau sans lui attribuer de valeurs. Voilà un exemple de code :

int monBeauTableau[4];

Deuxième façon :

La deuxième façon est pour créer ton tableau et lui attribuer des valeurs sur plusieurs lignes, de façon plutôt propre

int monBeauTableau[4];

monBeauTableau[0] = 16;
monBeauTableau[1] = 13;
monBeauTableau[2] = 507;
monBeauTableau[3] = 9;

Troisième façon :

Dans la troisième façon, on attribue les valeurs directement après la déclaration du tableau, sur la même ligne. C'est une méthode très pratique et plus courte, mais elle s'avère être moins lisible que la deuxième méthode:

int MonBeauTableau[4] = {16,13,507,9};

Ensuite, pour l'information, tu peux aussi mettre une variable dans les crochets, comme ceci :

int i = 4
int MonBeauTableau [i] = {16,13,507,8};


Voilà, j'espère que j'aurai pu répondre à ta question. Mais si jamais il existe une multitude de tutoriels sur le net. Il y avait aussi un article concernant les tableaux en C ici : https://www.commentcamarche.net/contents/120-langage-c-les-tableaux


Tsumiki
1
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Tsumiki,

int i = 4; 
int MonBeauTableau [i] = {16,13,507,8}; 

Ce code donne "error: variable-sized object may not be initialized" avec gcc (il manquait aussi un ; à la fin de la déclaration et initialisation de i).

Il faut utiliser une directive #define pour ces valeurs constantes, qui sont alors remplacées par le pré-processeur (définies par convention en majuscules, pour les distinguer des variables).
#define MAX_ELEMENTS 4 
int MonBeauTableau [MAX_ELEMENTS] = {16,13,507,8};

Une autre façon de faire est de laisser le compilateur déterminer seul la taille à partir de la déclaration et initialisation en ligne.
int MonBeauTableau [] = {16,13,507,8};

Dal
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Plutot que le #define, il vaut mieux utiliser "const int i=4;" qui est plus propre.
En fait, pour être plus clair, en C on doit connaître la taille d'un tableaux à la compilation. Et seul une constante te l'assure.
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Char Snipeur,

Chez moi, gcc (MinGW) refuse de compiler ceci en C :
    const int i=4;    
    int MonBeauTableau [i] = {16,13,507,8};

avec la même erreur qu'en l'absence de const : "error: variable-sized object may not be initialized".

Mais en C++, en revanche, cela passe.


Dal
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour char Snipeur,

Non il faut mettre #define. Mettre une variable/constante pour définir la taille est de l'évolution ISO C99.

Cordialement
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Faut se mettre à la page les gars, le C99 est là autant l'utiliser :-p
0