Produit de matrices

Fermé
zeusensa Messages postés 21 Date d'inscription vendredi 15 août 2008 Statut Membre Dernière intervention 29 mai 2011 - 15 août 2008 à 23:26
ghiz Messages postés 39 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 16 août 2008 - 16 août 2008 à 00:02
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 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 16 août 2008 18
16 août 2008 à 00:02
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