Multiplication de deux matrices en c

Soyez le premier à donner votre avis sur cette source.

Snippet vu 53 040 fois - Téléchargée 34 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
-
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
-
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
-
tout à fait............!
;p
Funto66
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3 -
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
-
ben c même très important, ça permet de déplacer la vue (c une sorte de subdivision de gluLookAt() )

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.