codescracker


c

C Program to Add Two Matrices



« Previous Program Next Program »

Add Two Matrices 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.

C Programming Code to Add Two Matrices

Following C program adds two 3*3 matrices to form the third matrix:

// Write a program in C to add any two 3*3 matrix.
// The matrix elements will be entered by the user.
// --------------codescracker.com-----------------

#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 is written under Code::Blocks IDE, therefore after successfully build and run, here is the sample run I've given for you to get it understand in a better way. 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

The main steps used in the above program are:

  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 increments 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 incrementation
  11. Again compiler comes in the inner loop and again initilized 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

Let's modify the above program with the program given below. Here we have provided ask the row and column size at run-time from the user and then rest of the program is almost same as above one. Let's look at it:

// Write a program in C to input any 2 matrix and find its addition
// -------codescracker.com--------

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

As the above program is written in CodeBlocks IDE, therefore after build and run, here is the sample run. 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 Programming Language

You may also like same program in other programming languages:


« Previous Program Next Program »






Tools
Calculator

Quick Links
Signup - Login - Give Online Test