#include <stdio.h>
#define N 3

main()
 { int i, j, A[N][N], B[N][N], C[N][N], U[N], V[N];
   printf("Matrix Multiplication demo,  L.Allison, Comp Sci, Monash U, oz\n");

   for(i=0; i < N; i++) /* put random #'s in V, A and B */
    { V[i] = 1+rand()%9;

      for(j=0; j < N; j++)
       { B[i][j] = rand()%10;
	 C[i][j] = rand()%10;
       }
    }


   mult(A, B, C, N, N, N);  /* A[][] = B[][] x C[][] */

   for(i=0; i < N; i++)
    { for(j=0; j < N; j++) printf(" %3d", A[i][j]);
      printf( (i==1) ? " = " : "   " );
      for(j=0; j < N; j++) printf("%3d ", B[i][j]);
      printf( (i==1) ? " x " : "   " );
      for(j=0; j < N; j++) printf("%3d ", C[i][j]);
      printf("\n");
    }
   printf("\n");


   VecMatrix(U, V, C, N, N);  /* U[] = V[] * M[][] */

   for(i=0; i < N; i++)
    { for(j=0; j < N; j++) if(i==1) printf(" %3d", U[j]); else printf("    ");
      printf( i==1 ? " = " : "   ");
      for(j=0; j < N; j++) if(i==1) printf(" %2d", V[j]); else printf("   ");
      printf( (i==1) ? " x " : "   " );
      for(j=0; j < N; j++) printf("%2d ", C[i][j]);
      printf("\n");
    }
 }/*main*/

/* Test Driver for Matrix Operation */
