# 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.

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, mat2, i, j, mat3;
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]);
}
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
mat3[i][j]=mat1[i][j]+mat2[i][j];
}
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:

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:

#### 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
4. Now j gets incremented and becomes 1, i still holds the value 0
5. Therefore, the second element is initialized to mat1
6. In same way, third element is initialized to mat1
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, mat1, and mat1
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 + mat2 will be added and initialized to the third matrix mat3, mat1 + mat2 will be added and initialized to the third matrix mat3 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 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++)
}
for(i=0; i<x; i++)
{
for(j=0; j<y; j++)
printf("\n");
}
getch();
return 0;
}```

This is the first screenshot of the sample run:

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

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

#### Same Program in Other Languages

C Online Test

« Previous Program Next Program »