#include #include void printMat(int mat[3][3],int nbLignes, int nbCols) { int l,c; for(l=0;l<=nbLignes-1;l=l+1) { for(c=0;c<=nbCols-1;c=c+1) { if (c!=nbCols-1) { printf("%d ",mat[l][c]); } else { printf("%d", mat[l][c]); } } printf("\n"); } } void multiplicationMatCarree(int m1[3][3],int m2[3][3],int m[3][3],int n) { int l,c,i; if (n==0) { printf("Attention, matrices vides\n"); exit(1); } for(l=0; l<=n-1; l=l+1) { for(c=0; c<=n-1; c=c+1) { m[l][c] = 0; for(i=0; i<=n-1; i=i+1) { m[l][c] = m[l][c] + m1[l][i]*m2[i][c]; } } } } int main(void) { int mat1[3][3] = {{1, 2, 3} , {4, 5, 6} , {7, 8, 9}}; int mat2[3][3] = {{2, 0, 0} , {0, 2, 0} , {0, 0, 2}}; int mat[3][3]; multiplicationMatCarree(mat1,mat2,mat,3); printf("\n"); printf("Mat1:\n"); printMat(mat1,3,3); printf("\n"); printf("Mat2:\n"); printMat(mat2,3,3); printf("\n"); printf("Mat:\n"); printMat(mat,3,3); printf("\n"); return 0; }