Sum of two matrices using two dimensional array in C
Matrix is the perfect example of a two-dimensional array. It has row and column. A row represents one dimension and column represents the second dimension. For example matrix[4][5], it has 4 rows, each row consisting 5 elements i.e matrix[0] has 5 elements, matrix[1] has 5 elements and so on. In this example, two matrices are added and the result is displayed. Addition is done with corresponding elements of individual matrix i.e. matrix1[0][0] is added with matrix2[0][0].
The complete source code and output are given here….(The code is also available on GitHub). Here are related articles about matrix operation.
Source Code
//Sum of two matrices using two dimensional array
#include <stdio.h>
#include <stdlib.h>
int main(){
int matrix1[10][10], matrix2[10][10], sum[10][10], i, j, m,n,p,q;
printf("Enter the order of first matrix: ");
scanf("%d%d",&m,&n);
printf("Enter the order of second matrix: ");
scanf("%d%d",&p,&q);
if(m!=p && n!=q){
printf("Order of matrix did not matched!!");
exit(0);
}
printf("Enter first matrix: \n");
for(i = 0 ; i < m; i++){
for(j = 0; j < n; j++)
scanf("%d", &matrix1[i][j]);
}
printf("Enter second matrix: \n");
for(i = 0 ; i < p; i++){
for(j = 0; j < q; j++)
scanf("%d", &matrix2[i][j]);
}
for(i = 0 ; i < m; i++){
for(j = 0; j < n; j++)
sum[i][j] = matrix1[i][j] + matrix2[i][j];
}
printf("The sum of the matrix is :\n");
for(i = 0 ; i < m; i++){
for(j = 0; j < n; j++){
printf("%d", sum[i][j]);
printf("\t");
}
printf("\n");
}
return 0;
}
The above program allocates the fixed memory to store the matrix. The program below shows the dynamic memory allocation to allocates the memory to store the matrix.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int rows, columns, i, j;
int **matrix1, **matrix2;
if (argc != 3) {
printf("Usage: outputfile rows columns\n");
exit(1);
}
rows = atoi(argv[1]);
columns = atoi(argv[2]);
// allocate memory for matrices
matrix1 = (int**) malloc (sizeof(int*) * columns);
for (i = 0; i < columns; i++) {
matrix1[i] = (int*) malloc(sizeof(int*) * rows);
}
matrix2 = (int**) malloc (sizeof(int*) * columns);
for (i = 0; i < columns; i++) {
matrix2[i] = (int*) malloc(sizeof(int*) * rows);
}
// get matrices from user
printf("Enter the first matrix: \n");
for(i = 0 ; i < rows; i++)
for(j = 0; j < columns; j++)
scanf("%d", &matrix1[i][j]);
printf("Enter the second matrix: \n");
for(i = 0 ; i < rows; i++)
for(j = 0; j < columns; j++)
scanf("%d", &matrix2[i][j]);
// add two matrices
for(i = 0 ; i < rows; i++){
for(j = 0; j < columns; j++)
matrix2[i][j] = matrix1[i][j] + matrix2[i][j];
}
// display the result
printf("The sum of the matrix is :\n");
for(i = 0 ; i < rows; i++){
for(j = 0; j < columns; j++){
printf("%d ", matrix2[i][j]);
}
printf("\n");
}
return 0;
}

Thanks nice set of programs for beginners
Nice
I like it very much sir
Nice
I like it very much sir
nice
it is very easy to understand.
thank u.. sir
how can i write an algorithm for this problem ??? may i know sir
crystal clear
nice post . thank you