Write a c program to multiply two matrices







#include<stdio.h>

int main(){
  int a[5][5],b[5][5],c[5][5];
  int i,j,k,sum=0,m,n,o,p;
 
  printf("\nEnter the row and column of first matrix");
  scanf("%d %d",&m,&n);
 
  printf("\nEnter the row and column of second matrix");
  scanf("%d %d",&o,&p);
 
  if(n!=o){
      printf("Matrix mutiplication is not possible");
      printf("\nColumn of first matrix must be same as row of second matrix");
  }
  else{
      printf("\nEnter the First matrix->");
      for(i=0;i<m;i++)
      for(j=0;j<n;j++)
           scanf("%d",&a[i][j]);
     
      printf("\nEnter the Second matrix->");
      for(i=0;i<o;i++)
      for(j=0;j<p;j++)
           scanf("%d",&b[i][j]);
     
      printf("\nThe First matrix is\n");
      for(i=0;i<m;i++){
      printf("\n");
      for(j=0;j<n;j++){
           printf("%d\t",a[i][j]);
          }
      }
     
      printf("\nThe Second matrix is\n");
      for(i=0;i<o;i++){
      printf("\n");
      for(j=0;j<p;j++){
           printf("%d\t",b[i][j]);
          }         
      }
     
      for(i=0;i<m;i++)
      for(j=0;j<p;j++)
           c[i][j]=0;
     
      for(i=0;i<m;i++){//row of first matrix
            for(j=0;j<p;j++){//column of second matrix
            sum=0;
            for(k=0;k<n;k++)
                 sum=sum+a[i][k]*b[k][j];
            c[i][j]=sum;
            }
      }
  }
  printf("\nThe multiplication of two matrix is\n");
  for(i=0;i<m;i++){
      printf("\n");
      for(j=0;j<p;j++){
           printf("%d\t",c[i][j]);
      }
  }
  return 0;
}





15 comments:

roshu said...

too large program

rani said...

thank u very much...n all must appreciate it..

k7 said...

simply superb..

kiran said...

too long

Anonymous said...

i did not understand the logic behind the first condition if(n!=0)
pls explain

Anonymous said...

too long.... :(

bilal said...

nice but too long!!!!!!!!!!

uday said...

nice... but make it short

Unknown said...

large program but very good.thanks

Unknown said...

large program but very good.thanks

Arun Hairdas said...

That's not if(n!=0), it's if(n!=o) //if variable n Not Equal To variable o
n is the number of columns of first matrix and o is the number of rows in 2nd matrix.

vachan nd said...

I don't think we need 5 for loops in the multiplication matrix. We can reduce it to 3 one for i<m,j<p, and the other for k<n.. 5 is unnecessary.

Anonymous said...

in mulitiplication part only 3 loops are enough...

Anonymous said...

Great Program and thax for it. Plz try to give a short one.

Anonymous said...

Purpose of k??