Bonjour,
Bienvenu sur le forum WayToLearnX
Vous avez quelques erreurs à fixer
#include <stdio.h>
#define MAX_STRINGS 10 //nombre max d'étudiants
#define STRING_LENGTH 50 //taille max du chaine de caractère(nom d'étudiant)
int main()
{
//initialisation du tableau
char tabc[MAX_STRINGS][STRING_LENGTH];
int i,n;
printf("Veuillez renseigner le nombre des étudiants: ");
scanf("%d",&n);
//saisir les étudiants
printf("\nVeuillez renseigner les noms des etudiants:\n");
for(i=0; i<n; i++){
printf("Etudiant [%d]: ",i+1);
getchar();
scanf("%[^\n]s",tabc[i]);
}
//Afficher le tableau des étudiants
printf("\nles etudiants du tableau sont donc les suivants:\n");
for(i=0; i<n; i++){
printf("[%d]: %s\n",i+1,tabc[i]);
}
getchar();
return 0;
}
Sortie:
Veuillez renseigner le nombre des étudiants: 3 Veuillez renseigner les noms des etudiants: Etudiant [1]: Alex Etudiant [2]: Bob Etudiant [3]: Ali les etudiants du tableau sont donc les suivants: [ 1]: Alex [ 2]: Bob [ 3]: Ali
La ligne suivante:
char tabc[MAX_STRINGS][STRING_LENGTH];
Ne s’agit pas d’un tableau 2D de string, mais d’un tableau 2D de char qui représente un tableau 1D de string. Pour créer un tableau 2D de string en C, vous devez utiliser : char tab[WIDTH][HEIGHT][MAX_STRING_LENGTH]
. Comme ci-dessus, vous avez des erreurs de logique dans votre code, et vous pouvez probablement résoudre ce problème avec un simple tableau de string 1D. (Tableau 2D de char).