/* File: matprod.c */
/* Time-stamp: "2001-04-09 20:16:08 calvanes" */
/* Scopo: uso di array multidimensionali */

/* Calcola la matrice prodotto di due matrici lette da tastiera. */

#include <stdio.h>

#define M 3
#define P 4
#define N 2

int main(void)
{
  int a[M][P];
  int b[P][N];
  int c[M][N];
  int i, j, k;

  /* lettura matrici */
  printf("Lettura prima matrice %dX%d;\n", M, P);
  for (i = 0; i < M; i++)
    for (j = 0; j < P; j++)
      scanf("%d", &a[i][j]);

  printf("Lettura seconda matrice %dX%d;\n", P, N);
  for (i = 0; i < P; i++)
    for (j = 0; j < N; j++)
      scanf("%d", &b[i][j]);

  /* calcolo prodotto */
  for (i = 0; i < M; i++)
    for (j = 0; j < N; j++) {
      c[i][j] = 0;
      for (k = 0; k < P; k++)
        c[i][j] = c[i][j] + a[i][k] * b[k][j];
    }

  /* stampa risultato */
  printf("La matrice prodotto e':\n");
  for (i = 0; i < M; i++) {
    for (j = 0; j < N; j++)
      printf("%d ", c[i][j]);
    printf("\n");
  }

  return 0;
}