Multiplication de deux matrices en c

Soyez le premier à donner votre avis sur cette source.

Snippet vu 66 423 fois - Téléchargée 36 fois

Contenu du snippet

Ce code en permet a l'utilisateur de remplir deux matrices de taille désirée et affiche le résultat. Simple mais ca marche!

Source / Exemple :


#include <conio.h>
#include <stdio.h>
void main()
{
	int i,j,k;
	int N,M,P;
	int mat[30][30],mat1[30][30],mat2[30][30];

	printf ("Donner le nombre de lignes de la premiere matrice : ");
        flushall(); scanf ("%d",&N);
	printf ("\nDonner la dimension commune aux 2 matrices : ");
	scanf ("%d",&M);
	printf ("\nDonner le nombre de colonnes de la deuxieme matrice : ");
	scanf ("%d",&P);

//Remplissage de la premiere matrice--------------------------------------------

	printf ("\nDonner les elements de la premiere matrice :\n");
	for (i=0;i<N;i++)
	{
		for (j=0;j<M;j++)
			{
			printf ("ligne %d, colonne %d : ",i+1,j+1);
			scanf ("%d",&mat1[i][j]);
			}
	}

//Remplissage de la seconde matrice---------------------------------------------

	printf ("\nDonner les elements de la seconde matrice :\n");
	for (i=0;i<M;i++)
	{
		for (j=0;j<P;j++)
			{
			printf ("ligne %d, colonne %d : ",i+1,j+1);
			scanf ("%d",&mat2[i][j]);
			}
	}

//Initialisation de la matrice résultante---------------------------------------

	for (i=0;i<N;i++)
	{
		for (j=0;j<P;j++)
			{
				mat[i][j]=0;
			}
	}
//Calcul de la matrice résultante-----------------------------------------------
	for (i=0;i<N;i++)
	{
		for (j=0;j<P;j++)
		{
			for (k=0;k<M;k++)
			{
				mat[i][j]=mat1[i][k]*mat2[k][j]+mat[i][j];
			}
		}
	}

//Affichage de la matrice résultante--------------------------------------------

	printf ("\nProduit matriciel :\n");
	for (i=0;i<N;i++)
	{
		for (j=0;j<P;j++)
			{
				printf ("ligne %d,colonne %d : ",i+1,j+1);
				printf ("%d\n",mat[i][j]);
			}
	}
	getch();
}

A voir également

Ajouter un commentaire Commentaires
lptm974 Messages postés 2 Date d'inscription mercredi 20 mai 2009 Statut Membre Dernière intervention 11 octobre 2010
11 oct. 2010 à 23:22
Salut,
Merci pour ton programme !
Mais j'aurais peut-être une amélioration à partager.
Je sais très bien qu'il très vieux mais ca pourrait aider les futur utilisateur.
Tu pourrais donc "factoriser" ton programme en initialisant ta matrice résultante,
dans la partie "Calcul de la matrice résultante", juste avant le:
for (k=0;k<M;k++)
on ajoute:
mat[i][j]=0;
cs_christmi Messages postés 1 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 7 janvier 2009
7 janv. 2009 à 15:07
trooo coool tn program merci
cs_kelsey Messages postés 35 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 11 décembre 2004
13 juin 2003 à 08:58
tout à fait............!
;p
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
13 juin 2003 à 08:49
En fait, gluLookAt() utilise en interne des glRotatef et des glTranslatef, qui eux-mêmes utilisent des matrices, dont la matrice GL_MODELVIEW.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
13 juin 2003 à 07:44
ben c même très important, ça permet de déplacer la vue (c une sorte de subdivision de gluLookAt() )
Afficher les 13 commentaires

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.