/* * 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 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); }