bonjour j ai un probleme d initiation de matrice.Je vous explique le but est de faire saisir à l utilisateur une matrice en console.Pendant qu il saisit on affiche la matrice qui prend progressivement les valeur qu il entre(ainsi l utilisateur sait ou il entre sa valeur).La matrice est initialisé à 0 . le problème est que lorsque j affiche la matrice initialisé à 0 le programme m affiche n importe quoi.Voici les deux fichier le matrice.h qui contient les operations sur les matrices et le saisi.c qui execute ces fonction.SI vous voulez plus de details precisez moi mais je pense etre clair:

matrice.h:

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
#include <stdio.h>
#include <stdlib.h>
#define NB_ELEM 20
 
struct  matrice
{
       int tab[NB_ELEM][NB_ELEM];
       int nbl;
       int nbc;
};
 
typedef struct matrice matrice;
 
 
 
 
 
 void init_mat(matrice *mat)
 {   
        int i,j,l,c;
 
    printf("saisir le nombre de ligne\n");
     scanf("%d",&l);
     printf("saisir le nombre de colonne\n");
     scanf("%d",&c);
      printf("%d\n",l);
      (*mat).nbl=l;
      (*mat).nbc=c;
 
     for(i=0;i<(*mat).nbl;i++)
     {
 
 
                     for (j=0;j<(*mat).nbc;j++)
                     {
 
                      (*mat).tab[i][j]=0;
                      }
 
     }
 
 
}
 
void affiche_mat(matrice * mat)
{
     int i,j;
 
 
                 for(i=0;i<(*mat).nbl;i++)
 
     {
                     for (j=0;j<(*mat).nbc;j++)
                     {
                      printf("%d",mat->tab[i][j]);
                      }
                      printf("\n");
     } 
}
 
 void saisir_mat(matrice  *mat)
{
int i,j;
for(i=0;i<(*mat).nbl;i++)
{
                  for (j=0;j<(*mat).nbc;j++)
                     {
                      scanf("%d",&(*mat).tab[i][j]);
                      printf("à saisi");
                      system("cls");
                      affiche_mat(mat);
 
                      }                      
 
}
}

saisi.c

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
 
#include <stdio.h>
#include <stdlib.h>
#define NB_ELEM 20
 
#include "matrice.h"
 
 
 
 
main()
{
matrice  mat;
     init_mat(&mat);
     printf("fin init\n");
     system("pause");
     affiche_mat(&mat);
     saisir_mat(&mat);
     affiche_mat(&mat);
     system("pause");
 
}