# CIS 160 Homework 6 solution

For this assignment you will turn in:

In class(10pts):

1.       A statement of the problem (typed)

2.       An explanation of your solution (typed)

3.       A flowchart (hand-drawn or computer generated)

4.       Pseudocode (typed)

Via BlackBoard(40pts):

1.       C program named <username_matrix_mult.c

Assignment:

Follow the steps that we have outlined in class for algorithm development to generate a program that takes in two matrices (A and B) and multiplies them, then outputs the result. Remember matrix multiplication is NOT just C[0][0] = A[0][0]*B[0][0]. To multiply two matrices (A and B) together first, the number of columns in A must equal the number of rows in B. So A (4x2) x B (2x3) = C (4x3). Matrix multiplication works as follows:

11

1

11

= ( ⋮

⋮ ) ,  = ( ⋮

⋮ )
1

1

11

×  = (  ⋮

)

1

ℎ          = ∑                ∗

=1

In short, you multiply each individual element of the row of A to the corresponding element of the column of B and then sum them.

Specifications:

Inputs:

-          Dimensions of each array (n x m)

-          The elements of each matrix (A and B)

Outputs:

-          The resulting matrix C=A x B

Functions:

1.  void printMatrix(int row, int col, float m[row][col])

a.       prints a nicely formatted matrix

2.  float calcEntry(float x[], float y[])

a.       Takes the ith row of A and the jth column from B in order to calculate C[i][j]

b.      Returns the value that will be put into C[i][j]

*  This is the minimum functions that you must use. You may use others if you like.

Other:

1.       This is individual work. You may NOT work in groups.

2.       Please staple all work together.

3.       You are expected to error check.

4.       For code: No compile = No points, no exceptions!