Bonjour tout le monde
C'est presque résolut, mais j'ai encore un probleme.
Voici le code.
#include <stdio.h>
#include <stdlib.h>
#define a 4
#define b 3
#define c 3
#define d 4
int multipli_matrice(int m1[a][b], int m2[c][d])
{
int i,j,k;
int m3[4][4];
puts("Multiplication de M1 par M2\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
m3[i][j]=0;
for(k=0;k<4;k++)
{
m3[i][j]+=m1[i][k]* m2[k][j];
}
}
}
puts("Resultat M3\n");
for(i=0;i<4;i++)
{
puts("\n");
for(j=0;j<4;j++)
{
printf(" %d",m3[i][j]);
}
}
return m3[i][j];
}
void entre_donnee_mat()
{
int mu[a][b];
int md[c][d];
int i,j,l,m,v,w;
int partSize = (10 == RAND_MAX) ? 1 : 1 + (RAND_MAX - 10)/(10+1);
int maxUsefull = partSize * 10 + (partSize-1);
int draw;
srand(time(NULL));
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
draw = draw = (int)(10.00*(double)rand()/(double)RAND_MAX);
mu[i][j]= draw;
}
}
for(l=0;l<c;l++)
{
for(m=0;m<d;m++)
{
draw = draw = (int)(10.00*(double)rand()/(double)RAND_MAX);
md[l][m]= draw;
}
}
puts("Voici la matrice M1\n");
for(v=0;v<4;v++)
{
puts("\n");
for(w=0;w<3;w++)
{
printf(" %d",mu[v][w]);
}
}
puts("\n");
puts("Voici la matrice M2\n");
for(v=0;v<3;v++)
{
puts("\n");
for(w=0;w<4;w++)
{
printf(" %d",md[v][w]);
}
}
puts("\n");
multipli_matrice( mu, md);
}
Voici ce qu'il affiche.
Voici la matrice M1
9 8 1
8 3 3
2 8 8
3 6 6
Voici la matrice M2
0 9 2 6
4 7 4 7
9 9 7 7
Multiplication de M1 par M2
Resultat M3
113 210 65 181
57 136 51 106
131 170 95 148
941452550 -1072027589 2013480256 -1072027610
La deernier lignes de m3 pose probleme, j'ignore d'où vient l'erreur.
Voyez vous une erreur?
Cordialement
A bientôt