/******************************************************************************
Online C Compiler.
Code, Compile, Run and Debug C program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <stdio.h>
int main()
{
int a[10][10], b[10][10], prod[10][10], r1, c1, r2, c2, i, j, k;
do {
printf("Inserisci numero righe e colonne prima matrice: ");
scanf("%d %d", &r1, &c1);
printf("Inserisci numero righe e colonne seconda matrice: ");
scanf("%d %d",&r2, &c2);
if (c1 != r2) printf("Errore! Il numero di colonne della prima matrice deve essere uguale al numero di colonne della seconda.\n\n");
} while (c1 != r2); // Controllo sui numeri inseriti
// Inserisci gli elementi della prima matrice.
printf("\nInserisci gli elementi della prima matrice:\n");
for(i=0; i<r1; ++i)
for(j=0; j<c1; ++j)
{
printf("Inserisci a%d%d: ",i+1, j+1);
scanf("%d", &a[i][j]);
}
// Inserisci gli elementi della seconda matrice.
printf("\nInserisci gli elementi della seconda matrice:\n");
for(i=0; i<r2; ++i)
for(j=0; j<c2; ++j)
{
printf("Inserisci b%d%d: ",i+1, j+1);
scanf("%d",&b[i][j]);
}
// Inizializziamo la matrice prodotto a 0
for(i=0; i<r1; ++i)
for(j=0; j<c2; ++j)
{
prod[i][j] = 0;
}
// Moltiplichiamo le due matrici
for(i=0; i<r1; ++i)
for(j=0; j<c2; ++j)
for(k=0; k<c1; ++k)
{
prod[i][j]+=a[i][k]*b[k][j];
}
// risultato
printf("\nIl prodotto tra le due matrici รจ:\n");
for(i=0; i<r1; ++i)
for(j=0; j<c2; ++j)
{
printf("%d ", prod[i][j]);
if(j == c2-1)
printf("\n\n");
}
return 0;
}