Maîtriser les tableaux multidimensionnels en C : 2D et 3D expliqués
Tableaux multidimensionnels en C
Dans ce tutoriel, vous apprendrez à travailler avec les tableaux multidimensionnels (tableaux bidimensionnels et tridimensionnels) avec l'aide d'exemples.
En programmation C, vous pouvez créer un tableau de tableaux. Ces tableaux sont connus sous le nom de tableaux multidimensionnels. Par exemple,
float x[3][4];
Ici, x est un tableau bidimensionnel (2D). Le tableau peut contenir 12 éléments. Vous pouvez considérer le tableau comme un tableau avec 3 lignes et chaque ligne a 4 colonnes.

De même, vous pouvez déclarer un tableau tridimensionnel (3D). Par exemple,
float y[2][4][3];
Ici, le tableau y peut contenir 24 éléments.
Initialisation d'un tableau multidimensionnel
Voici comment vous pouvez initialiser les tableaux bidimensionnels et tridimensionnels :
Initialisation d'un tableau 2D
// Différentes façons d'initialiser un tableau bidimensionnel
int c[2][3] = {{1, 3, 0}, {-1, 5, 9}};
int c[][3] = {{1, 3, 0}, {-1, 5, 9}};
int c[2][3] = {1, 3, 0, -1, 5, 9};
Initialisation d'un tableau 3D
Vous pouvez initialiser un tableau tridimensionnel de manière similaire à un tableau bidimensionnel. Voici un exemple,
int test[2][3][4] = {
{{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}},
{{13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9}}
};
Exemple 1 : Tableau bidimensionnel pour stocker et afficher des valeurs
// Programme C pour stocker la température de deux villes sur une semaine et l'afficher.
#include <stdio.h>
const int VILLE = 2;
const int SEMAINE = 7;
int main() {
int temperature[VILLE][SEMAINE];
// Utilisation de boucles imbriquées pour stocker les valeurs dans un tableau 2D
for (int i = 0; i < VILLE; ++i) {
for (int j = 0; j < SEMAINE; ++j) {
printf("Ville %d, Jour %d: ", i + 1, j + 1);
scanf("%d", &temperature[i][j]);
}
}
printf("\nAffichage des valeurs : \n\n");
// Utilisation de boucles imbriquées pour afficher les valeurs d'un tableau 2D
for (int i = 0; i < VILLE; ++i) {
for (int j = 0; j < SEMAINE; ++j) {
printf("Ville %d, Jour %d = %d\n", i + 1, j + 1, temperature[i][j]);
}
}
return 0;
}
Sortie
Ville 1, Jour 1: 33 Ville 1, Jour 2: 34 Ville 1, Jour 3: 35 Ville 1, Jour 4: 33 Ville 1, Jour 5: 32 Ville 1, Jour 6: 31 Ville 1, Jour 7: 30 Ville 2, Jour 1: 23 Ville 2, Jour 2: 22 Ville 2, Jour 3: 21 Ville 2, Jour 4: 24 Ville 2, Jour 5: 22 Ville 2, Jour 6: 25 Ville 2, Jour 7: 26 Affichage des valeurs: Ville 1, Jour 1 = 33 Ville 1, Jour 2 = 34 Ville 1, Jour 3 = 35 Ville 1, Jour 4 = 33 Ville 1, Jour 5 = 32 Ville 1, Jour 6 = 31 Ville 1, Jour 7 = 30 Ville 2, Jour 1 = 23 Ville 2, Jour 2 = 22 Ville 2, Jour 3 = 21 Ville 2, Jour 4 = 24 Ville 2, Jour 5 = 22 Ville 2, Jour 6 = 25 Ville 2, Jour 7 = 26
Exemple 2 : Somme de deux matrices
// Programme C pour trouver la somme de deux matrices d'ordre 2*2
#include <stdio.h>
int main() {
float a[2][2], b[2][2], resultat[2][2];
// Prise de saisie en utilisant des boucles for imbriquées
printf("Entrez les éléments de la 1ère matrice\n");
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j) {
printf("Entrez a%d%d : ", i + 1, j + 1);
scanf("%f", &a[i][j]);
}
// Prise de saisie en utilisant des boucles for imbriquées
printf("Entrez les éléments de la 2ème matrice\n");
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j) {
printf("Entrez b%d%d : ", i + 1, j + 1);
scanf("%f", &b[i][j]);
}
// Addition des éléments correspondants de deux tableaux
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j) {
resultat[i][j] = a[i][j] + b[i][j];
}
// Affichage de la somme
printf("\nSomme des matrices :");
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j) {
printf("%.1f\t", resultat[i][j]);
if (j == 1) printf("\n");
}
return 0;
}
Sortie
Entrez les éléments de la 1ère matrice Entrez a11: 2; Entrez a12: 0.5; Entrez a21: -1.1; Entrez a22: 2; Entrez les éléments de la 2ème matrice Entrez b11: 0.2; Entrez b12: 0; Entrez b21: 0.23; Entrez b22: 23; Somme des matrices: 2.2 0.5 -0.9 25.0
Exemple 3 : Tableau tridimensionnel
// Programme C pour stocker et afficher 12 valeurs entrées par l'utilisateur
#include <stdio.h>
int main() {
int test[2][3][2];
printf("Entrez 12 valeurs : \n");
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
for (int k = 0; k < 2; ++k) {
scanf("%d", &test[i][j][k]);
}
}
}
// Affichage des valeurs avec index approprié.
printf("\nAffichage des valeurs :\n");
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
for (int k = 0; k < 2; ++k) {
printf("test[%d][%d][%d] = %d\n", i, j, k, test[i][j][k]);
}
}
}
return 0;
}
Sortie
Entrez 12 valeurs: 1 2 3 4 5 6 7 8 9 10 11 12 Affichage des valeurs: test[0][0][0] = 1 test[0][0][1] = 2 test[0][1][0] = 3 test[0][1][1] = 4 test[0][2][0] = 5 test[0][2][1] = 6 test[1][0][0] = 7 test[1][0][1] = 8 test[1][1][0] = 9 test[1][1][1] = 10 test[1][2][0] = 11 test[1][2][1] = 12
Langue C
- Maîtriser les tableaux C# : Déclaration, initialisation et opérations
- Comment passer des tableaux 1D et 2D aux fonctions en C – Guide pratique
- Comprendre la relation entre les tableaux et les pointeurs en C
- Techniques de copie de tableaux en Java : Guide complet
- Pourquoi les données urbaines comptent : transformer les insights en innovation urbaine
- Construire des villes intelligentes human-centric : un plan stratégique
- 5 étapes pour construire des villes plus intelligentes et plus sûres
- Les tableaux en C++ : Déclaration, initialisation et techniques avec pointeurs
- Maîtriser l'allocation de tableaux dynamiques en C++ : Guide pratique avec exemples de code