C program to perform matrix multiplication and addition.

Written by priya. Posted in Basics

Source Code

/*************************************************************************************/
/*   C program to perform matrix multiplication and addition.*/
/*  Download more programs at http://sourcecode4u.com/ */
/*************************************************************************************/
/* Write a C program that uses functions to perform the following:
i) Addition of Two Matrices
ii) Multiplication of Two Matrices
*/
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int ch,i,j,m,n,p,q,k,r1,c1,a[10][10],b[10][10],c[10][10];
    printf("************************************");
    printf("\n\t\tMENU");
    printf("\n**********************************");
    printf("\n[1]ADDITION OF TWO MATRICES");
    printf("\n[2]MULTIPLICATION OF TWO MATRICES");
    printf("\n[0]EXIT");
    printf("\n**********************************");
    printf("\n\tEnter your choice:\n");
    scanf("%d",&ch);
    if(ch<=2 & ch>0)
    {
        printf("Valid Choice\n");
    }
    switch(ch)
    {
        case 1:
        printf("Input rows and columns of A & B Matrix:");
        scanf("%d%d",&r1,&c1);
        printf("Enter elements of matrix A:\n");
        for(i=0;i<r1;i++)
        {
            for(j=0;j<c1;j++)
            scanf("%d",&a[i][j]);
        }
        printf("Enter elements of matrix B:\n");
        for(i=0;i<r1;i++)
        {
            for(j=0;j<c1;j++)
            scanf("%d",&b[i][j]);
        }
        printf("\n =====Matrix Addition=====\n");
        for(i=0;i<r1;i++)
        {
            for(j=0;j<c1;j++)
            printf("%5d",a[i][j]+b[i][j]);
            printf("\n");
        }
        break;
        case 2:
        printf("Input rows and columns of A matrix:");
        scanf("%d%d",&m,&n);
        printf("Input rows and columns of B matrix:");
        scanf("%d%d",&p,&q);
        if(n==p)
        {
            printf("matrices can be multiplied\n");
            printf("resultant matrix is %d*%d\n",m,q);
            printf("Input A matrix\n");
            read_matrix(a,m,n);
            printf("Input B matrix\n");
            /*Function call to read the matrix*/
            read_matrix(b,p,q);
            /*Function for Multiplication of two matrices*/
            printf("\n =====Matrix Multiplication=====\n");
            for(i=0;i<m;++i)
            for(j=0;j<q;++j)
            {
                c[i][j]=0;
                for(k=0;k<n;++k)
                c[i][j]=c[i][j]+a[i][k]*b[k][j];
            }
            printf("Resultant of two matrices:\n");
            write_matrix(c,m,q);
        }
        /*end if*/
        else
        {
            printf("Matrices cannot be multiplied.");
        }
        /*end else*/
        break;
        case 0:
        printf("\n Choice Terminated");
        exit(1);
        break;
        default:
        printf("\n Invalid Choice");
    }
}
/*Function read matrix*/
int read_matrix(int a[10][10],int m,int n)
{
    int i,j;
    for(i=0;i<m;i++)
    for(j=0;j<n;j++)
    scanf("%d",&a[i][j]);
    return 0;
}
/*Function to write the matrix*/
int write_matrix(int a[10][10],int m,int n)
{
    int i,j;
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        printf("%5d",a[i][j]);
        printf("\n");
    }
    return 0;
}

Out Put

BLOG COMMENTS POWERED BY DISQUS