Exercice langage C multiplication de deux matrices

Exercice programmation langage C : Matrice

En multipliant une matrice A de dimensions N et M avec une matrice B de dimensions M et P on obtient une matrice C de dimensions N et P:

A(N,M) * B(M,P) = C(N,P)

La multiplication de deux matrices se fait en multipliant les composantes des deux matrices lignes par colonnes:

Rappel:

/ \ / \ / \ | a b c | | p q | | a*p + b*r + c*t a*q + b*s + c*u | | e f g | * | r s | = | e*p + f*r + g*t e*q + f*s + g*u | | h i j | | t u | | h*p + i*r + j*t h*q + i*s + j*u | | k l m | \ / | k*p + l*r + m*t k*q + l*s + m*u | \ / \ / 

Ecrire un programme qui effectue la multiplication de deux matrices A et B. Le résultat de la multiplication sera mémorisé dans une troisième matrice C qui sera ensuite affichée.

 

Corrigé exercice langage C multiplication de deux matrices

#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, M, P; /* dimensions des matrices */
int I, J, K; /* indices courants */
/* Saisie des données */
printf("*** Matrice A ***\n");
printf("Nombre de lignes de A (max.50) : ");
scanf("%d", &N );
printf("Nombre de colonnes de A (max.50) : ");
scanf("%d", &M );
for (I=0; Ifor (J=0; J{
printf("Elément[%d][%d] : ",I,J);
scanf("%d", &A[I][J]);
}
printf("*** Matrice B ***\n");
printf("Nombre de lignes de B : %d\n", M);
printf("Nombre de colonnes de B (max.50) : ");
scanf("%d", &P );
for (I=0; Ifor (J=0; 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{
for (J=0; Jprintf("%7d", A[I][J]);
printf("\n");
}
printf("Matrice donnée B :\n");
for (I=0; I{
for (J=0; J

printf("%7d", B[I][J]);
printf("\n");
}
/* Affectation du résultat de la multiplication à C */
for (I=0; Ifor (J=0; J

{
C[I][J]=0;
for (K=0; KC[I][J] += A[I][K]*B[K][J];
}
/* Edition du résultat */
printf("Matrice résultat C :\n");
for (I=0; I{
for (J=0; J

printf("%7d", C[I][J]);
printf("\n");
}
return 0;
}

Article publié le 05 Février 2011 Mise à jour le Mardi, 08 Novembre 2022 10:21 par Salim KHALIL