Write a program that reads two matrices and determines their
Write a program that reads two matrices and determines their product matrix. For example: M1 = 1 2 3 3 2 1 and M2 = 1 2 3 4 5 2 5 3 1 4 5 4 3 2 1 then P = 20 24 18 12 16 12 20 18 16 24 Requirements: Implement the following functions: void readm(matrix [] [], int rows, int cols); void writem(matrix[][], int rows, int cols); void mulmatrix(float matrixl [] [], int rowsl, int colsl, matrix2 [] [], int cols2, float product [][]); Input the row size and column size for matrix M1 and M2 Input the matrix Validate the product matrix dimension void readmatrix(int firstMatrix[][10], int secondMatrix[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond); void multiplyMatrices(int firstMatrix[][10], int secondMatrix[][10], int multResult[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond); void display(int mult[][10], int rowFirst, int columnSecond); int main() { int firstMatrix[10][10], secondMatrix[10][10], mult[10][10], rowFirst, columnFirst, rowSecond, columnSecond, i, j, k; printf(\"Enter rows and column for first matrix: \"); scanf(\"%d %d\", &rowFirst, &columnFirst); printf(\"Enter rows and column for second matrix: \"); scanf(\"%d %d\", &rowSecond, &columnSecond); // If colum of first matrix in not equal to row of second matrix, asking user to enter the size of matrix again. while (columnFirst != rowSecond) { printf(\"Error! column of first matrix not equal to row of second.\ \"); printf(\"Enter rows and column for first matrix: \"); scanf(\"%d%d\", &rowFirst, &columnFirst); printf(\"Enter rows and column for second matrix: \"); scanf(\"%d%d\", &rowSecond, &columnSecond); } // Function to take matrices data readmatrix(firstMatrix, secondMatrix, rowFirst, columnFirst, rowSecond, columnSecond); // Function to multiply two matrices. multiplyMatrices(firstMatrix, secondMatrix, mult, rowFirst, columnFirst, rowSecond, columnSecond); // Function to display resultant matrix after multiplication. display(mult, rowFirst, columnSecond); return 0; } void readmatrix(int firstMatrix[][10], int secondMatrix[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond) { int i, j; printf(\"\ Enter elements of matrix 1:\ \"); for(i = 0; i < rowFirst; ++i) { for(j = 0; j < columnFirst; ++j) { printf(\"Enter elements a%d%d: \", i + 1, j + 1); scanf(\"%d\", &firstMatrix[i][j]); } } printf(\"\ Enter elements of matrix 2:\ \"); for(i = 0; i < rowSecond; ++i) { for(j = 0; j < columnSecond; ++j) { printf(\"Enter elements b%d%d: \", i + 1, j + 1); scanf(\"%d\", &secondMatrix[i][j]); } } } void multiplyMatrices(int firstMatrix[][10], int secondMatrix[][10], int mult[][10], int rowFirst, int columnFirst, int rowSecond, int columnSecond) { int i, j, k; // Initializing elements of matrix mult to 0. for(i = 0; i < rowFirst; ++i) { for(j = 0; j < columnSecond; ++j) { mult[i][j] = 0; } } // Multiplying matrix firstMatrix and secondMatrix and storing in array mult. for(i = 0; i < rowFirst; ++i) { for(j = 0; j < columnSecond; ++j) { for(k=0; k
Solution
include