10th Assignment Solution

$24.99 $18.99

1. Here’s the main function of a program that • Reads in two matrices by prompting the user for their dimensions, dynamically allocating memory from the heap, and reading the values into the memory using row major ordering for the matrix values (1%). • Multiplies the two matrices together and puts the result into another…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Description

5/5 – (2 votes)

1. Here’s the main function of a program that

Reads in two matrices by prompting the user for their dimensions, dynamically allocating

memory from the heap, and reading the values into the memory using row major ordering

for the matrix values (1%).

Multiplies the two matrices together and puts the result into another dynamically

allocated piece of memory (after checking that the dimensions are appropriate for matric

multiplication) (1%).

Outputs the two input and the result matrices (0.5%).

Write the implementations of the functions input_matrix, matrix_multiply,

and output_matrix (2.5%).

/*—————————————————————————*/

int main(void) {

double *m1,*m2,*m3;

int m1_rows,m1_columns,m2_rows,m2_columns;

if (((m1 = input_matrix(&m1_rows,&m1_columns,”Matrix 1″)) != NULL) &&

((m2 = input_matrix(&m2_rows,&m2_columns,”Matrix 2″)) != NULL) &&

((m3 = malloc(m1_rows*m2_columns*sizeof(double))) != NULL)) {

printf(“Matrix 1\n”);

output_matrix(m1,m1_rows,m1_columns);

printf(“Matrix 2\n”);

output_matrix(m2,m2_rows,m2_columns);

if (matrix_multiply(m1,m1_rows,m1_columns,m2,m2_rows,m2_columns,m3))

{

printf(“Product\n”);

output_matrix(m3,m1_rows,m2_columns);

free(m1);

free(m2);

free(m3);

return(0);

} else {

printf(“Error in dimensions\n”);

free(m1);

free(m2);

free(m3);

return(-1);

}

} else {

free(m1);

free(m2);

free(m3);

printf(“Error allocating memory\n”);

return(-2);

}

}

2. Since we talked about pointers, memory allocation and linked lists in class, I’d like you to

write a program that allows the user to:

Enter the names of persons (1%)

For each person entered, enter the name of his/her best buddy (1%)

Print out the “best buddys” (0.5%)

Each person’s name entered must be stored in a node of a linked list.

Each node of the linked list must contain (only) the persons name, a pointer to the node for its

best buddy, and a pointer to the next node in the list.

Before the program completes it must explicitly free the malloced memory.

Here what a sample run should look like (with the user input shown in italics) …

Enter nation name : Tom

Enter nation name : Betty

Enter nation name : Martin

Enter nation name : Michael

Enter nation name : Amanda

Enter nation name : Catharine

Enter nation name :

Enter best ally name for Catharine : Amanda

Enter best ally name for Amanda : Michael

Enter best ally name for Michael : Martin

Enter best ally name for Martin : Betty

Enter best ally name for Betty : Amanda

Enter best ally name for Tom : Catharine

The best ally of Catharine is Amanda

The best ally of Amanda is Michael

The best ally of Michael is Martin

The best ally of Martin is Betty

The best ally of Betty is Amanda

The best ally of Tom is Catharine

Remarks:

The assignment is due next Friday, Nov. 19th, 11:59PM.

You need to submit two (matrix.c, best_buddies.c) file with the corresponding C code using submit2

(Please DO NOT submit compiled executables)! Furthermore, the C code needs to compile w/o warnings using -Wall (otherwise the TA’s won’t look at it) a

10th Assignment Solution
$24.99 $18.99