Product of two matrix in C program

//product of two matrix
#include <stdio.h>
#define MAXROWS 10
#define MAXCOLS 10

void readMatrix(int arr[][MAXCOLS], int m, int n);
void printMatrix(int arr[][MAXCOLS], int m, int n);
void productMatrix(int array1[][MAXCOLS], int array2[][MAXCOLS],
int array3[][MAXCOLS], int m, int n);

main()
{

int array1[MAXROWS][MAXCOLS], array2[MAXROWS][MAXCOLS],
array3[MAXROWS][MAXCOLS];
int m, n;

printf("Enter the value of m and n \n");
scanf("%d %d", &m, &n);

printf("Enter Matrix array1 \n");
readMatrix(array1, m, n);
printf("Matrix array1 \n");
printMatrix(array1, m, n);

printf("Enter Matrix array2 \n");
readMatrix(array2, m, n);
printf("Matrix B \n");
printMatrix(array2, m, n);

productMatrix(array1, array2, array3, m, n);
printf("The product matrix is \n");
printMatrix(array3, m, n);

}

/* Input Matrix array1 */

void readMatrix(int arr[][MAXCOLS], int m, int n)
{

int i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
scanf("%d", &arr[i][j]);
}
}
}

void printMatrix(int arr[][MAXCOLS], int m, int n)
{

int i, j;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("%3d", arr[i][j]);
}
printf("\n");
}
}

/* Multiplication of matrices */

void productMatrix(int array1[][MAXCOLS], int array2[][MAXCOLS],
int array3[][MAXCOLS], int m, int n)
{

int i, j, k;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
array3[i][j] = 0;
for (k = 0; k < n; k++)
{
array3[i][j] = array3[i][j] + array1[i][k] * array2[k][j];
}
}
}
}