#include <stdio.h>

#define ARRAY_DIM 4

int main (void) {
  int a[4][4];
  int b[4][4];
  int c[4][4];
  int i,j,k,tmp;

  a[0][0] = 0;
  a[0][1] = 1;
  a[0][2] = 2;
  a[0][3] = 3;
  a[1][0] = 4;
  a[1][1] = 5;
  a[1][2] = 6;
  a[1][3] = 7;
  a[2][0] = 8;
  a[2][1] = 9;
  a[2][2] = 10;
  a[2][3] = 11;
  a[3][0] = 12;
  a[3][1] = 13;
  a[3][2] = 14;
  a[3][3] = 15;

  b[0][0] = 21;
  b[0][1] = 14;
  b[0][2] = 2;
  b[0][3] = 6;
  b[1][0] = 8;
  b[1][1] = 45;
  b[1][2] = 9;
  b[1][3] = 33;
  b[2][0] = 0;
  b[2][1] = 11;
  b[2][2] = 2;
  b[2][3] = 13;
  b[3][0] = 77;
  b[3][1] = 1;
  b[3][2] = 11;
  b[3][3] = 1;
 

  // output of arrays a and b
  for (i = 0; i < ARRAY_DIM; i++) {
    for (j = 0; j < ARRAY_DIM; j++) {
      printf("a[%d][%d]=%d, b[%d][%d]=%d\n",i,j,a[i][j],i,j,b[i][j]);
    }
  }

  // multiply of matrix a and b
  for (i = 0; i < ARRAY_DIM; i++) {
    for (j = 0; j < ARRAY_DIM; j++) {
      c[i][j] = 0;
      for (k = 0; k < ARRAY_DIM; k++) {
 c[i][j] = c[i][j] + a[i][k] * b[k][j];
      }
    }
  }

  // output of array c
  for (i = 0; i < ARRAY_DIM; i++) {
    for (j = 0; j < ARRAY_DIM; j++) {
      printf("c[%d][%d]=%d\n",i,j,c[i][j]);
    }
  }
}
 
 
 

 back