Bonjour,

Le code ci-dessous est supposé demander le nombre de lignes et colonnes d'une matrice à 2 dimensions et saisir les nombres dans cette matrice et ensuite afficher le contenu de la matrice :

Mais les nombres affichés ne sont pas les bons à compter de la seconde ligne. Les boucles me paraissent cohérentes alors je ne vois pas où ça bloque.

Voici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
#include <stdio.h>
 
#define LMax 10
#define CMax 10
 
void GetDim(int *FLig, int *FCol,  int FLMax, int FCMax) ;
void Get2dMat(int *FMat, int *FLig, int *FCol) ;
void Display2dMat(int *FMat, int *FLig, int *FCol) ;
 
int main(void)
{
 
 
	int Mat[LMax][CMax] ;
	int Lig ;
	int Col ;
 
	GetDim(&Lig, &Col, LMax, CMax) ;
	Get2dMat( (int *) Mat, &Lig, &Col) ;
	Display2dMat( (int *) Mat, &Lig, &Col) ;
 
	printf("\n\n") ;
	return 0 ;
}
 
void GetDim(int *FLig, int *FCol,  int FLMax, int FCMax) 
{
	printf("\n\nEntrez le nbr de ligne de la matrice : ") ;
	scanf("%d", FLig) ;
 
	printf("\nEntrez le nbr de colonne de la matrice : ") ;
	scanf("%d", FCol) ;	
}
 
void Get2dMat(int *FMat, int *FLig, int *FCol)
{
	int i ;
	int j ;
 
	for ( i = 0  ;  i < *FLig  ;  i++ )
		for ( j = 0  ;  j < *FCol  ;  j++ )
		{
			printf("\nElement[%d][%d] : ", i, j) ;
			scanf("%d", (int *) FMat + i * *FCol + j ) ;
		}
}
 
void Display2dMat(int *FMat, int *FLig, int *FCol)
{
	int i ;
	int j ;
 
	for ( i = 0  ;  i < *FLig  ;  i++ )
		for ( j = 0  ;  j < *FCol  ;  j++ )
			printf("\n%d", *(FMat + i * *FLig + j)) ;
}
Merci,

Pascal