Produit de matrices

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();
}
Configuration: Windows Vista
Internet Explorer 7.0

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. 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];