Calculate the Addition or Subtraction & Trace of 2 Matrices

#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);
}

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Close Menu