Matrix Multiplication

Algorithm

Input	two matrixes.	   
Output	Output matrix C.	   
Complexity O(n^3)	 

Matrix-Multiply(A, B)
1 if columns [A] ≠ rows [B]
2      then error "incompatible dimensions"
3 else 
4      for i =1 to rows [A]
5        for j = 1 to columns [B]
6            C[i, j] =0
7         for k = 1 to columns [A]
8              C[i, j]=C[i, j]+A[i, k]*B[k, j]
9  return C

Algorithm Description

To multiply two matrixes sufficient and necessary condition is "number of columns in matrix A = number of rows in matrix B".
Loop for each row in matrix A.
Loop for each columns in matrix B and initialize output matrix C to 0. This loop will run for each rows of matrix A.
Loop for each columns in matrix A.
Multiply A[i,k] to B[k,j] and add this value to C[i,j]
Return output matrix C.

C Code

//Multiplication of Two Matrices
//Input : Two matrices of type integer

#include< stdio.h>
#include< conio.h>
int main()
{
    int a[10][10],b[10][10],c[10][10],i,j,k,r1,r2,c1,c2;
    printf("Enter rows n columns of matrix A ");
    scanf("%d %d",&r1,&c1);
    printf("Enter rows n columns of matrix B ");
    scanf("%d %d",&r2,&c2);
    if(c1!=r2)
    {
         printf("Multiplication not possible");
         exit(0);
    }
    printf("Enter elements for matrix A\n");
    for(i=0;i< r1;i++)
    {
         for(j=0;j< c1;j++)
            {
                scanf("%d",&a[i][j]);
            }
    }
    printf("Enter elements for matrix B\n");
    for(i=0;i< r2;i++)
    {
         for(j=0;j< c2;j++)
            {
                 scanf("%d",&b[i][j]);
            }
    }
    printf("Matrix multiplication is :\n");
    for(i=0;i< r1;i++)
    {
          for(j=0;j< c2;j++)
             {
                 c[i][j]=0;
                 for(k=0;k< c1;k++)
                        {
                           c[i][j]=c[i][j]+a[i][k]*b[k][j];
                        }
             }
    }
    for(i=0;i< r1;i++)
    {
          for(j=0;j< c2;j++)
                {
                  printf("%d ",c[i][j]);
                }
                  printf("\n");
    }
}