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:

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

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

    ReplyDelete
    Replies
    1. 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.

      Delete
  3. too long.... :(

    ReplyDelete
  4. nice but too long!!!!!!!!!!

    ReplyDelete
  5. nice... but make it short

    ReplyDelete
  6. large program but very good.thanks

    ReplyDelete
  7. large program but very good.thanks

    ReplyDelete
  8. 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.

    ReplyDelete
  9. in mulitiplication part only 3 loops are enough...

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

    ReplyDelete
  11. Purpose of k??

    ReplyDelete