programming-examples/c/Matirix/C Program to Calculate the Addition or Subtraction & Trace of 2 Matrices.c

110 lines
3.3 KiB
C
Raw Normal View History

2019-11-15 12:59:38 +01:00
/*
* 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);
}