#include #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 */