## INDEX

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

1. too large program

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

3. simply superb..

4. too long

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

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.

6. too long.... :(

7. nice but too long!!!!!!!!!!

8. nice... but make it short

9. large program but very good.thanks

10. large program but very good.thanks

11. 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.

12. in mulitiplication part only 3 loops are enough...

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

14. Purpose of k??