Bonjour,

J'ai créer un programme qui calcule le produit matriciel

Voilà mon programme de test :

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <stdio.h> 
#include <time.h>  
 
 
 
//Procédure pour remplir les elements du matrice
 
void lire(int A[4][4],int B[4][4]);
 
 
//procédure calcule le produit des deux matrices
 
void calculer(int A[4][4],int B[4][4],int AB[4][4]);
 
//procédure pour afficher les résultats de calcul
 
void afficher(int A[4][4],int B[4][4],int AB[4][4]);
 
int main()
{
 
 //Déclaration des matrices
 
 int A[4][4],B[4][4],AB[4][4];
 
 lire(A,B);
 calculer(A,B,AB);
 afficher(A,B,AB);
 
 return 0;
 
}
 
void lire(int A[4][4],int B[4][4]){
 
  int i,j;
 
  for(i=0;i<5;i++)
 
    {
 
        for(j=1;j<5;j++)
 
        {
           //génération de nombre entre 1 et 10
 
           A[i][j]=rand()%10;
           B[i][j]=rand()%10;
 
        }
 
    }
 
 
}
 
 
void calculer(int A[4][4],int B[4][4],int AB[4][4]){
 
   int i,j;
 
      for (i = 0; i < 4; i++){
 
          for (j = 0; j < 4; j++){
 
              int z;
 
              AB[i][j] = 0;
 
              for (z = 0; z < 4; z++){
 
                AB[i][j] += A[i][z] * B[z][j];
 
              }
 
		 }
 
	  }
 
}
 
 
 
 
void afficher(int A[4][4],int B[4][4],int AB[4][4]){
 
 
	 int j=0,i=0;  
 
	printf("=> A * B = AB :\n");
 
	         for(i=0;i<4;i++){
 
		      printf("| %d  %d  %d  %d |  ",A[i][j],A[i][j+1],A[i][j+2],A[i][j+3]);
			  printf("| %d  %d  %d  %d |  ",B[i][j],B[i][j+1],B[i][j+2],B[i][j+3]);
			  printf("| %d  %d  %d  %d |  \n",AB[i][j],AB[i][j+1],AB[i][j+2],AB[i][j+3]);
 
			  }
 
 
}
Ca se compile sans problème (sous Linux).Mais lors d'affichage des résultats y a une erreur voilà :



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
[user@localhost Produit Matriciel]$ ./produit
=> A * B = AB :
| 2  8  7  6 |  | 0  6  5  5 |  | 112  62  126  168 |  
| 2  9  2  0 |  | 2  1  7  9 |  | 30  33  85  107 |  
| 3  0  2  1 |  | 6  6  6  8 |  | 21  30  30  36 |  
| 7  2  2  7 |  | 9  0  3  5 |  | 79  56  82  104 |  
Erreur de segmentation (core dumped)
Alors je sais pas de quoi s'agit-il.

Merci pour votre aide