Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 10 :
Tableaux à deux
dimensions
15/01/23
Définition
3
Indices colonnes
1 2 3 j M
1
1
2
2
3
3
Indices lignes
Indices
i
i
Vec[i]
N Mat[i][j]
N
15/01/23
Déclaration de tableaux à deux dimensions
5
Type nom_tableau[nombre_lignes][nombre_colonnes]
● Type est le type des valeurs du tableau
15/01/23
Initialisation de tableaux à 2 dimensions
7
Exemple :
15/01/23
Initialisation de tableaux à 2 dimensions
8
{6, 2, 7, 9 },
{8, 1, 0, 5 } };
15/01/23
Initialisation de tableaux à 2 dimensions
9
{6 , 2E6 , 9 },
15/01/23
Parcourir les éléments d’un
tableau à deux dimension
10
● Si on veut parcourir tous les éléments d’un tableau à deux
dimensions, on doit utiliser deux boucles imbriquées avec un
compteur pour l’indice des lignes et un autre compteur pour l’indice
des colonnes.
Exemples :
➢ mettre tous les éléments d’un tableau de N lignes et M colonnes à
zeros
float x[N][M] ;
int i, j ;
for (i = 0; i < N; i++)
for(j = 0 ; j <M ; j++)
x[i][j] = 0;
➢ Lecture des éléments d’un tableau de N lignes et M colonnes
for (i = 0; i < N; i++)
for(j = 0 ; j <M ; j++) {
printf("donnez la valeur numéro x[%d,%d] : ", i,j);
scanf("%d", &x[i][j]);
} 15/01/23
Exercices
11
15/01/23
Corrigé de l’exercice
#include <stdio.h>
#include <stdlib.h>
#define N 4 // nombre d'étudiants 4
#define M 4 // 3 notes plus une colonne pour la moyenne
int main()
{
float notes[N][M];
float moyenne_classe;
int Nstat;
lireNotes(notes,N,M);
calculMoyenne(notes,N,M);
afficherNotes(notes,N,M);
statistic(notes,N,M);
return 0;
}
Corrigé de l’exercice - suite
void lireNotes(float Mat[][M], int nl, int nc)
{
int i,j;
for(i=0; i < nl; i++)
for(j=0; j<nc-1; j++)
{
printf("notes[%d][%d] = ",i,j);
scanf("%f",&Mat[i][j]);
}
}
void afficherNotes(float Mat[][M], int nl, int nc)
{
int i,j;
printf("%10s%10s%10s%10s\n","note1","note2","note3","moy");
for(i= 0; i<nl; i++){
for(j=0; j<nc; j++)
{
printf("%10.2f",Mat[i][j]);
}
printf("\n");
}
Corrigé de l’exercice - suite
void calculMoyenne(float Mat[][M], int nl, int nc)
{ int i;
for(i = 0; i < nl; i++) {
Mat[i][nc-1] = (2*Mat[i][0]+ Mat[i][1]+3*Mat[i][2])/6;
}
}
void statistic(float Mat[][M], int nl, int nc)
{
int i, nEtudiants_moy_sup=0;
float moyClas = 0;
for(i= 0; i < nl; i++) {
moyClas += Mat[i][nc-1];
}
moyClas /= nl;
for(i = 0; i<nl; i++)
{
if(Mat[i][nc-1]>=moyClas)
nEtudiants_moy_sup++;
}
printf("\n\nil y a %d qui une moyenne supérieur à %.2f",nEtudiants_moy_sup,moyClas);
}