Produits de deux matrices
Bonjour,
j'ai reussi à faire un programme qui donne le produit de deux matrices sans pointeurs mais je veux le modifier et intercaler des pointeurs au lieu des compteurs mais je n'arrive pas à faire cette modification ça ne marche pas...
pouvez vous m'aider svp?
voila mon programme sans pointeurs: comment pourrai je le modifier?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #include <stdio.h>
#include <string.h>
#include <conio.h>
void main ()
{
int A[50][50],B[50][50],C[50][50],i,j,M,N,P,k;
for (j=0;j<P;j++)
printf("Donner le nombre des lignes de la matrice A\n");
scanf("%d",&N);
printf("Donner le nombre des colonnes de la matrice A et le nombre des lignes de la matrice B\n");
scanf("%d",&M);
printf("Donner le nombre des colonnes de la matrice B\n");
scanf("%d",&P);
printf("Entrer les elements de la matrice A\n");
for (i=0;i<N;i++)
for (j=0;j<M;j++)
{
printf("Entrer la valeur de A[%d][%d] ",i,j);
scanf("%d",&A[i][j]);
printf("\n");
}
printf("Entrer les elements de la matrice B\n");
for (i=0;i<M;i++)
for (j=0;j<P;j++)
{
printf("Entrer la valeur de B[%d][%d] ",i,j);
scanf("%d",&B[i][j]);
printf("\n");
}
i=0;
j=0;
do
{
for (k=0;k<M;k++)
for (i=0;i<N;i++)
{
C[i][j]+=A[i][k]*B[k][j];
}
j++;
}
while ((i!=N) || (j!=P));
for (i=0;i<N;i++)
for (j=0;j<P;j++)
{
printf ("les elements de la matrice C[%d][%d] sont %d \n",i,j,C[i][j]);
}
getch ();
} |
N.B: j'ai essayé un petit programme avec un tableau dynamique mais ça n'a pas marché :( voila ma tentative:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include <stdio.h>
#include <string.h>
#include <conio.h>
#include <malloc.h>
#include <stdlib.h>
void main ()
{
int i,j,M,N,P,k,runner;
int dimX = 3;
int dimY = 3;
int **A ;
A = (int**)malloc(sizeof(int*)*dimX);
for(runner=0; runner <dimX; runner++)
{
A[runner] = (int*)malloc(sizeof(int)*dimY);
}
for (i = 0; i < dimX ; i++)
for (j = 0 ; j < dimY ; j++)
printf("%d",A[i][j]);
getch ();
} |
Merci d'avance!