This C Program calculates the addition or subtraction & trace of 2 matrices. Here trace of the matrix is the sum of the elements on the main diagonal i.e the diagonal from the upper left to the lower right of a matrix.

Here is source code of the C program to calculates the addition or subtraction & trace of 2 matrices. The C program is successfully compiled and run on a Linux system. The program output is also shown below.

`/*`

`* C program to read two matrices A(MxN) and B(MxN) and perform addition`

`* OR subtraction of A and B. Also, find the trace of the resultant`

`* matrix. Display the given matrices, their sum or differences and`

`* the trace.`

`*/`

`#include <stdio.h>`

void trace(int arr[][10], int m, int n);

void main()

`{`

int array1[10][10], array2[10][10], arraysum[10][10],

arraydiff[10][10];

int i, j, m, n, option;

printf("Enter the order of the matrix array1 and array2 \n");

scanf("%d %d", &m, &n);

printf("Enter the elements of matrix array1 \n");

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

scanf("%d", &array1[i][j]);

`}`

`}`

printf("MATRIX array1 is \n");

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

printf("%3d", array1[i][j]);

`}`

printf("\n");

`}`

printf("Enter the elements of matrix array2 \n");

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

scanf("%d", &array2[i][j]);

`}`

`}`

printf("MATRIX array2 is \n");

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

printf("%3d", array2[i][j]);

`}`

printf("\n");

`}`

printf("Enter your option: 1 for Addition and 2 for Subtraction \n");

scanf("%d", &option);

switch (option)

`{`

case 1:

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

arraysum[i][j] = array1[i][j] + array2[i][j];

`}`

`}`

printf("Sum matrix is \n");

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

printf("%3d", arraysum[i][j]) ;

`}`

printf("\n");

`}`

trace (arraysum, m, n);

break;

case 2:

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

arraydiff[i][j] = array1[i][j] - array2[i][j];

`}`

`}`

printf("Difference matrix is \n");

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

printf("%3d", arraydiff[i][j]) ;

`}`

printf("\n");

`}`

trace (arraydiff, m, n);

break;

`}`

`}`

`/* Function to find the trace of a given matrix and print it */`

void trace (int arr[][10], int m, int n)

`{`

int i, j, trace = 0;

for (i = 0; i < m; i++)

`{`

for (j = 0; j < n; j++)

`{`

if (i == j)

`{`

trace = trace + arr[i][j];

`}`

`}`

`}`

printf("Trace of the resultant matrix is = %d\n", trace);

`}`

$ cc pgm26.c $ a.out Enter the order of the matrix array1 and array2 3 3 Enter the elements of matrix array1 2 3 4 7 8 9 5 6 8 MATRIX array1 is 2 3 4 7 8 9 5 6 8 Enter the elements of matrix array2 3 3 3 3 4 6 8 4 7 MATRIX array2 is 3 3 3 3 4 6 8 4 7 Enter your option: 1 for Addition and 2 for Subtraction 1 Sum matrix is 5 6 7 10 12 15 13 10 15 Trace of the resultant matrix is = 32 $ a.out Enter the order of the matrix array1 and array2 3 3 Enter the elements of matrix array1 10 20 30 15 18 20 12 14 16 MATRIX array1 is 10 20 30 15 18 20 12 14 16 Enter the elements of matrix array2 1 5 9 10 15 14 9 12 13 MATRIX array2 is 1 5 9 10 15 14 9 12 13 Enter your option: 1 for Addition and 2 for Subtraction 2 Difference matrix is 9 15 21 5 3 6 3 2 3 Trace of the resultant matrix is = 15

**Sanfoundry Global Education & Learning Series – 1000 C Programs.**

Here’s the list of Best Reference Books in C Programming, Data-Structures and Algorithms

If you wish to look at other example programs on Matrix, go to C Programming Examples on Matrix. If you wish to look at programming examples on all topics, go to C Programming Examples.