Exercice langage C: Le produit de deux matrices carrées de même dimension

Travail à Faire:

Ecrire un programme qui réalise Le produit de deux matrices carrées de même dimension.

Rappel :

| a | b |              *             | a’ | b’ |             =              | a *a’ + b*c’ | a*b’ + b*d’ |

| c | d |                            | c’ | d’ |                             | c*a’ + d*c‘  | c*b’ + d*d’ |

 


 

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  
main() 
{ 
 /* Déclarations */ 
  int A[50][50];  /* matrice donnée    */ 
  int B[50][50];  /* matrice donnée    */ 
  int C[50][50];  /* matrice résultat  */ 
  int N ;       /* dimension des matrices (les matrices sont carrées)*/ 
  int i,j,k;       /* indices courants  */ 
 /* Saisie des données */ 
  printf("Nombre de lignes et de colonnes  (max.50) : "); 
  scanf("%d", &N ); 
  printf("*** Matrice A ***\n"); 
  for (i=0; i<N; i++) 
      for (j=0; j<N; j++) 
          { 
            printf("Elément[%d][%d] : ",i,j); 
            scanf("%d", &A[i][j]); 
          } 
  printf("*** Matrice B ***\n"); 
  for (i=0; i<N; i++) 
      for (j=0; j<N; j++) 
          { 
            printf("Elément[%d][%d] : ",i,j); 
            scanf("%d", &B[i][j]); 
          } 
 /* Affichage des matrices */ 
  printf("Matrice donnée A :\n"); 
  for (i=0; i<N; i++) 
     { 
       for (j=0; j<N; j++) 
             printf("%7d", A[i][j]); 
       printf("\n"); 
     } 
  printf("Matrice donnée B :\n"); 
  for (i=0; i<N; i++) 
     { 
       for (j=0; j<N; j++) 
             printf("%7d", B[i][j]); 
       printf("\n"); 
     }
 /* Affectation du résultat du produit à C */ 
  for (i=0; i<N; i++) 
      for (j=0; j<N; j++) 
 { 
    C[i][j]  =  0  ; 
  for(k = 0 ; k<N ; k++) 
              C[i][j] += A[i][k]*B[k][j]; 
 } 
  /* Edition du résultat */ 
  printf("Matrice résultat C :\n"); 
  for (i=0; i<N; i++) 
     {        for (j=0; j<N; j++) 
             printf("%7d", C[i][j]); 
       printf("\n"); 
     } 
}