rendered paste body#include <stdio.h>#include <stdlib.h>int main(void){ int **A, **B, **C; int i, j, k, m, n, p; // A[m][n] B[n][p] C[m][p] // citire printf("\nm=");scanf("%d",&m); printf("\nn=");scanf("%d",&m); printf("\np=");scanf("%d",&p); // alocare A = (int**) malloc (m * sizeof(int*)); for (i=0;i<m;i++) *(A+i) = (int*) malloc (n * sizeof(int)); B = (int**) malloc (n * sizeof(int*)); for (i=0;i<n;i++) *(B+i) = (int*) malloc (p * sizeof(int)); C = (int**) malloc (m * sizeof(int*)); for (i=0;i<m;i++) *(C+i) = (int*) malloc (p * sizeof(int)); for (i=0;i<m;i++) for (j=0;j<n;j++) { printf("\nA[%d][%d]=",i,j); scanf("%d",&A[i][j]); }; for (i=0;i<n;i++) for (j=0;j<p;j++) { printf("\nB[%d][%d]=",i,j); scanf("%d",&B[i][j]); }; // inmultire for (i=0;i<m;i++) { for (j=0;j<p;j++) { C[i][j] = 0; for (k=0;k<n;k++) C[i][j] += A[i][k] * B[k][j]; }; } // dezalocare for (i=0;i<m;i++) free((int*)*(A+i)); free((int*)A); for (i=0;i<n;i++) free((int*)*(B+i)); free((int*)B); // afisare for (i=0;i<m;i++) { printf("\n"); for (j=0;j<p;j++) printf("%d ",C[i][j]); } // dezalocare for (i=0;i<p;i++) free((int*)*(C+i)); free((int*)C); return(0);}