Calculer le produit de deux matrices de taille different

Contenu du snippet

Un programme qui fait le produit de deux matrices de taille matrice1: [n,p] et matrice2 [p,m] qui donnent une matrice de taille: [n,m]...

Source / Exemple :


#include <stdio.h>
int valide(int x)
{
do
{
 scanf("%i",&x);
if ((x<0)||(x>20))
printf("vous devez entrer une valeur entre 1 et 20 : ");
   }while((x<=0)||(x>20));
   return(x);
   }
void main()
{
const n=20;
int i,j,k,l1,l2,c1,c2;
float mat1[n][n],mat2[n][n],matres[n][n];
do
{
printf("Donner le nombre de lignes de la matrice n° 1 \n");
l1=valide(l1);
printf("Donner le nombre de colonnes de la matrice n°1 \n");
c1=valide(c1);
printf("Donner le nombre de lignes de la matrice n° 2 \n");
l2=valide(l2);
printf("Donner le nombre de colonnes de la matrice n°2 \n");
c2=valide(c2);
if(c1!=l2)
printf("Les tailles des deux matrices sont incompatible \n Il faut que le nombre de colonnes de la premiere matrice egal au nombre de lignes de la deuxieme matrice . \n");
}while(c1!=l2);
printf("Tailles des matrices est bien choisis \n Votre nouvelle matrice aura cet taille %i lignes et %i colonnes ",l1,c2);

			for(i=0;i<l1;i++)
         {
         		for(j=0;j<c1;j++)
						{
						printf("Donner l'element d'emplacement [%i,%i] de la premiere matrice \n",i+1,j+1);
						scanf("%f",&mat1[i][j]);
						}
         }
				for(i=0;i<l2;i++)
				{
					for(j=0;j<c2;j++)
						{
						printf("Donner l'element d'emplacement [%i,%i] de la dexieme matrice \n",i+1,j+1);
						scanf("%f",&mat2[i][j]);
						}
            }
for(i=0;i<l1;i++)
{
for(j=0;j<c2;j++)
{
matres[i][j]=0;
for(k=0;k<c1;k++)
{
matres[i][j]=matres[i][j]+mat1[i][k]*mat2[k][j];
}
}
}
printf("le produit de la première et la deuxième matrice donne :");

for(i=0;i<l1;i++)
{
printf("(");
for(j=0;j<c2;j++)
{
printf("%4.0f",matres[i][j]);
}
printf(")\n");
}
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.