w3resource
0

C Exercises: Multiplication of two Matrices

C Array: Exercise-21 with Solution

Write a program in C for the multiplication of two square matrices.

Visual Presentation:

C Exercises: Multiplication of two Matrices

Sample Solution:

C Code:

#include <stdio.h>

int main() {
    // Declare matrices and variables
    int arr1[50][50], brr1[50][50], crr1[50][50], i, j, k, r1, c1, r2, c2, sum = 0;

    // Display multiplication of two matrices
    printf("\n\nMultiplication of two Matrices :\n");
    printf("----------------------------------\n");

    // Input rows and columns of the first matrix
    printf("\nInput the rows and columns of the first matrix: ");
    scanf("%d %d", &r1, &c1);

    // Input rows and columns of the second matrix
    printf("\nInput the rows and columns of the second matrix: ");
    scanf("%d %d", &r2, &c2);

    // Check if multiplication is possible
    if (c1 != r2) {
        printf("Multiplication of matrices is not possible.\n");
        printf("Column of the first matrix and row of the second matrix must be the same.\n");
    } else {
        // Input elements in the first matrix
        printf("Input elements in the first matrix:\n");
        for (i = 0; i < r1; i++) {
            for (j = 0; j < c1; j++) {
                printf("element - [%d],[%d] : ", i, j);
                scanf("%d", &arr1[i][j]);
            }
        }

        // Input elements in the second matrix
        printf("Input elements in the second matrix:\n");
        for (i = 0; i < r2; i++) {
            for (j = 0; j < c2; j++) {
                printf("element - [%d],[%d] : ", i, j);
                scanf("%d", &brr1[i][j]);
            }
        }

        // Display the first matrix
        printf("\nThe First matrix is:\n");
        for (i = 0; i < r1; i++) {
            printf("\n");
            for (j = 0; j < c1; j++)
                printf("%d\t", arr1[i][j]);
        }

        // Display the second matrix
        printf("\nThe Second matrix is:\n");
        for (i = 0; i < r2; i++) {
            printf("\n");
            for (j = 0; j < c2; j++)
                printf("%d\t", brr1[i][j]);
        }

        // Matrix multiplication
        for (i = 0; i < r1; i++) { // Row of first matrix
            for (j = 0; j < c2; j++) { // Column of second matrix
                sum = 0;
                for (k = 0; k < c1; k++)
                    sum = sum + arr1[i][k] * brr1[k][j];
                crr1[i][j] = sum;
            }
        }

        // Display the result of matrix multiplication
        printf("\nThe multiplication of two matrices is:\n");
        for (i = 0; i < r1; i++) {
            printf("\n");
            for (j = 0; j < c2; j++)
                printf("%d\t", crr1[i][j]);
        }
    }
    printf("\n\n");
    return 0;
}

Sample Output:

Multiplication of two Matrices :                                                                              
----------------------------------                                                                            
                                                                                                              
Input the rows and columns of first matrix : 2                                                                
2                                                                                                             
                                                                                                              
Input the rows and columns of second matrix : 2                                                               
2                                                                                                             
Input elements in the first matrix :                                                                          
element - [0],[0] : 1                                                                                         
element - [0],[1] : 2                                                                                         
element - [1],[0] : 3                                                                                         
element - [1],[1] : 4                                                                                         
Input elements in the second matrix :                                                                         
element - [0],[0] : 5                                                                                         
element - [0],[1] : 6                                                                                         
element - [1],[0] : 7                                                                                         
element - [1],[1] : 8 

The First matrix is :                                                                                         
                                                                                                              
1       2                                                                                                     
3       4                                                                                                     
The Second matrix is :                                                                                        
                                                                                                              
5       6                                                                                                     
7       8                                                                                                     
The multiplication of two matrices is :                                                                       
                                                                                                              
19      22                                                                                                    
43      50                                          

Flowchart:

Flowchart: Multiplication of two Matrices

C Programming Code Editor:

Previous: Write a program in C for subtraction of two Matrices.
Next: Write a program in C to find transpose of a given matrix.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.