Produit de matrices

zeusensa Messages postés 21 Statut Membre -  
ghiz Messages postés 39 Statut Membre -
Bonjour,
j'ai un problème avec ce programme,svp aidez moi!!

#include<stdio.h>
#include<conio.h>
#include<string.h>

int main()
{
int i,j,n,m,k,l;

printf("\n entrez le nombre de lignes de la premiere matrice \n");
scanf("%d",&n);
printf("\n entrez le nombre de colonnes de la premiere matrice \n");
scanf("%d",&m);

int mat1[n][m];

for(i=0;i<n;i++)
{

for(j=0;j<m;j++)
{
printf("\n donnez la valeur de mat[%d][%d] =",i,j);
scanf("%d",&mat1[i][j]);
}
}

printf("\n entrez le nombre de lignes de la deuxieme matrice \n");
scanf("%d",&k);
printf("\n entrez le nombre de colonnes de la deuxieme matrice \n");
scanf("%d",&l);

int mat2[k][l];

for(i=0;i<k;i++)
{

for(j=0;j<l;j++)
{
printf("\n donnez la valeur de mat2[%d][%d] =",i,j);
scanf("%d",&mat2[i][j]);
}
}

if (m!=k)
{
printf("\n\n produit matriciel impossible!!!!\n");
}

int t[n][l];

for(i=0;i<n;i++)
{

for(j=0;j<l;j++)

{

for(k=0;k<m;k++)

{
t[i][j]= t[i][j]+mat1[i][k]*mat2[k][j];
}

}
}

printf("\n\n voici votre matrice : \n\n" );

for(i=0;i<n;i++)
{
printf(" \n");

for(j=0;j<l;j++)

{
printf("\t %d" ,t[i][j] );

}
}

getch();
}

1 réponse

ghiz Messages postés 39 Statut Membre 18
 
Salut, tu as un problème lors de la déclaration des matrices, tu n'as le droit de déclarer une matrice de cette façon

int m1[n][m] dans le cas où n et m sont des variables.

ou bien tu fixes la taille maximale c à d
int m1[10][10] enfin ce que tu veux comme taille mais il faut écrire un nombre

ou bien tu peux déclarer des variables comme constantes.

#include<stdio.h>
#include<conio.h>
#include<string.h>

#define nmax 10
#define mmax

...

main()
...
int m1[nmax][mmax];
1