codescracker
c

C Program to Add Two Matrices



« Previous Program Next Program »

In this article, you will learn and get about adding two matrices in C. But before going through the program, if you are not aware about how two matrix gets added, then I recommend you to must refer Matrix Addition article. There it will take very little time to see the pictorial representation of how matrix addition goes.

Matrix Addition in C

To add any two matrices in C programming, you have to ask from the user to enter all elements of both the matrix, now start adding the two matrix to form a new matrix. After adding two matrices display the third matrix which is the addition result of the two given matrix by user as shown in the program given here.

#include<stdio.h>
#include<conio.h>
int main()
{
    int mat1[3][3], mat2[3][3], i, j, mat3[3][3];
    printf("Enter 3*3 matrix 1 elements :");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
            scanf("%d",&mat1[i][j]);
    }
    printf("Enter 3*3 matrix 2 elements :");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
            scanf("%d",&mat2[i][j]);
    }
    printf("\nAdding the two matrix.....");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
            mat3[i][j]=mat1[i][j]+mat2[i][j];
    }
    printf("\nBoth matrix added successfully!");
    printf("\nHere is the new matrix:\n");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
            printf("%d ",mat3[i][j]);
        printf("\n");
    }
    getch();
    return 0;
}

As the above program was written under Code::Blocks IDE, therefore after successful build and run, here is the sample run for better understanding. This is the first snapshot of the sample run:

c program to add two matrices

Now supply any 9 elements to the first 3*3 matrix and then again 9 elements to the second 3*3 matrix. Press ENTER key to see the output. The output will be the addition result of the given two matrix as shown here in the second snapshot of the sample run here:

matrix addition program c

Program Explained

  1. Taking 9 elements for matrix 1, using for loop
  2. Here firstly, i starts with 0 and j with 0
  3. Therefore, the first element is initialized to mat1[0][0]
  4. Now j gets incremented and becomes 1, i still holds the value 0
  5. Therefore, the second element is initialized to mat1[0][1]
  6. In same way, third element is initialized to mat1[0][2]
  7. Now when j becomes 3, then the condition j<3 evaluates to be false
  8. Therefore the compiler skip this loop and goes to the outer loop
  9. And Increments the value of i
  10. As i holds 0, therefore i becomes 1 now after increment
  11. Again compiler comes in the inner loop and again initialized j to 0
  12. Now the same processes starts again that was from step no.2 to step no.7, but here i holds 1, not 0
  13. That is, fourth, fifth, and sixth elements is initialized to mat1[1][0], mat1[1][1], and mat1[1][2]
  14. In similar way rest of the elements is initialized to the matrix 1 and matrix 2
  15. To add the matrix, we have to use similar corresponding index number for both the matrix like mat1[0][0] + mat2[0][0] will be added and initialized to the third matrix mat3[0][0], mat1[0][1] + mat2[0][1] will be added and initialized to the third matrix mat3[0][1] etc.
  16. In similar way, do this for all the 9 elements and initialized to corresponding index of third matrix
  17. Finally print the value of third matrix as output

User is allowed to Define Matrix Size

Let's modify the above program with some extra features. The extra feature is, user is allowed to define the size of matrix:

#include<stdio.h>
#include<conio.h>
int main()
{
    int mat1[10][10], mat2[10][10], matadd[10][10];
    int x, y, i, j;
    printf("Enter the size of matrix:-\n");
    printf("Enter row size:");
    scanf("%d",&x);
    printf("Enter column size:");
    scanf("%d",&y);
    printf("\nEnter elements of first matrix:");
    for(i=0; i<x; i++)
    {
        for(j=0; j<y; j++)
            scanf("%d", &mat1[i][j]);
    }
    printf("Enter elements of second matrix:");
    for(i=0; i<x; i++)
    {
        for(j=0; j<y; j++)
            scanf("%d", &mat2[i][j]);
    }
    for(i=0; i<x; i++)
    {
        for(j=0; j<y; j++)
            matadd[i][j] = mat1[i][j] + mat2[i][j];
    }
    printf("\nThe matrix after addition:\n");
    for(i=0; i<x; i++)
    {
        for(j=0; j<y; j++)
            printf("%d ",matadd[i][j]);
        printf("\n");
    }
    getch();
    return 0;
}

This is the first screenshot of the sample run:

add two matrix in c

This is the second screenshot after providing row and column size:

add two matrices c program

And this is the third screenshot after providing 2*3 matrix elements of both matrices:

matrix addition c program

Same Program in Other Languages

C Online Test


« Previous Program Next Program »



© Copyright 2021. All Rights Reserved.

CodesCracker