#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]);
}
}
}