You are on page 1of 2

#include <stdio.

h>
#include <stdlib.h>
int **matrice1 = NULL;
int **matrice2 = NULL;
int **matrice3=NULL;
int m,n,p;
//mediana

void stampa (int **matrice,int rig,int col){


//
stampa(matrice, riga , colonna);
for (int i = 0; i < rig ; i++) {
for (int j = 0; j < col; j++) {
printf("%d \t",matrice[i][j]);
}
printf("\n");
}
}
void moltiplica (){
int i,j,k;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < p; j++)
{
for (int k = 0; i < n; ++i)
{
matrice3[i][j]=matrice3[i][j]+ ( matrice1[i][k] * matrice2[k][j]
);
}
}
}
}

int main(int argc , char *argv[]){


if (argc <3){
perror("Argomenti mancanti");
exit(1);
}
int i,j=0;
//A(m,n) //B(n,p)
m=atoi(argv[1]);//riga
n=atoi(argv[2]);//colonna A e riga di b
p=atoi(argv[3]);//colonna
matrice1= (int **)malloc (sizeof(int *) * m);
for ( i = 0; i < m; i++)
{
matrice1[i]=(int *)malloc(sizeof(int)*n);
for (j=0;j<n;j++)
{
matrice1[i][j]=1+rand()%5;

}
}
matrice2= (int **)malloc (sizeof(int *) * n);
for ( i = 0; i < n; i++)
{
matrice2[i]=(int *)malloc(sizeof(int)*p);
for (j=0;j<p;j++)
{
matrice2[i][j]=1+rand()%5;
}
}
//Matrice 3 prodotto ha il numero di righe di matrice 1 colonne matrice
2
matrice3 = (int **)malloc (sizeof(int *) * m);
for ( i = 0; i < m; i++)
{
matrice3[i]=(int *)malloc(sizeof(int)*p);
for (j=0;j<p;j++)
{
matrice3[i][j]=0;
}
}
stampa(matrice1,m,n);
printf("\n\n\n");
stampa(matrice2,n,p);
printf("\n\n\n");
moltiplica();
stampa(matrice2,m,p);
}

You might also like