# Assignment 2 – Pointers and Dynamically Allocated Multi-dimensional Arrays solution

\$24.99

Original Work ?
Category: You will Instantly receive a download link for .ZIP solution file upon Payment

## Description

5/5 - (2 votes)

Problem 2.1 Pointer arithmetic (2 points) Presence assignment, due by 18:30 h today Writeaprogramthatcountsthenumberofelementsinanarrayuntilencounteringtheﬁrstvalue which has the fractional part 0 without the usage of any integer variables for counting. Your program should read an int for the length of the array and an array of doubles (containing at least one value with fractional part 0) from the standard input. The number of “real” ﬂoating point values before the ﬁrst value with fractional part 0 should be outputted on the standard output. Youcanassumethattheinputwillbevalidandatleastoneelementwithfractionalpart 0 willbe entered. Testcase 2.1: input 5 1.2 -3.4 5.00 4 5.45 Testcase 2.1: output Before the first integer: 2 elements
Problem 2.2 Substring of a string (2 points) Presence assignment, due by 18:30 h today Writeaprogramthatextractsasubstring(specifyingtwopositionsforfromanduntil)ofastring putting the result into a dynamically allocated array of chars. Your program should read from the standard input one string (may be statically allocated with at most 100 elements) and two positions. The dynamically allocated string containing the result of the substring operation on the input string should be printed on the standard output. Please check if the positions are valid or not (you can see the concrete “error” messages which have to be printed on the screen by submitting your solution and observing the results of the comparisons against the speciﬁed testcases). You are not allowed to use the strstr() function from string.h. You may use pointers and the strcpy() and strncpy() functions. You can assume that the input will be syntactically valid. Testcase 2.2: input onestringtwo 3 8 Testcase 2.2: output Result of substring(3, 8): string
Problem 2.3 Dynamically allocated matrix comparison (3 points) Write a program that compares two dynamically allocated matrices based on their elements on the main and secondary diagonals. Your program should dynamically allocate the memory for the two input matrices. You should write functions for reading a matrix from the standard input, printing a matrix to the standard output and ﬁnally a function for comparing the main and secondary diagonals of the two matrices. Do not forget about the allocation and deallocation of the memory. The main diagonal of a square matrix is the diagonal from the left to the right and the secondary diagonal is the one from the right to the left. Your program should read one integer value (the dimension n) and the elements of two integer matricesfromthestandardinput(ﬁrstiteratingthroughtherowsandthenthroughthecolumns). The result of the matrix comparison should be printed on the standard output. In case the result of the comparison is that they are not identical then the message “The comparison result: NOT identical” should be printed on the screen. You can assume that the input will be valid. Testcase 2.3: input 3 1 2 3 4 5 6 7 8 9 1 0 3 0 5 0 7 0 9 Testcase 2.3: output Matrix A: 1 2 3 4 5 6 7 8 9 Matrix B: 1 0 3 0 5 0 7 0 9 The comparison result: identical
Problem 2.4 Printing dynamically allocated 3D array sections (4 points) Write a program that dynamically allocates memory for a 3D array of integers and prints the 2D sections parallel to the “y0z axis” (considering the array dimensions column-dimension, rowdimension and depth-dimension similar to the geometrical x, y and z dimensions) of a 3D array. Your program should read three integer values corresponding to the dimensions of a 3D array and should dynamically allocate the memory for this 3D array. You should write functions for reading the elements of the 3D array from standard input (ﬁrst iterating through rows, then columns and then the depth) and ﬁnally a function for printing the 2D sections of the 3D array which are parallel to the “y0z axis”. Do not forget about the allocation and deallocation of the memory. You can assume that the input will be valid.
Testcase 2.4: input 2 2 3 1 2 3 4 4 4 1 2 3 4 4 4
Testcase 2.4: output Section 1: 1 2 3 1 2 3 Section 2: 4 4 4 4 4 4
How to submit your solutions • Your source code should be properly indented and compile with gcc without any warnings (You canuse gcc -Wall -o program program.c). Insertsuitablecomments(notoneveryline…) to explain what your program does. • Please name the programs according to the suggested ﬁlenames (they should match the description of the problem) in Grader. Otherwise you might have problems with the inclusion of header ﬁles. Each program must include a comment on the top like the following: /* JTSK-320112 a2 p1.c Firstname Lastname myemail@jacobs-university.de */
• You have to submit your solutions via Grader at https://cantaloupe.eecs.jacobs-university.de. If there are problems (but only then) you can submit the programs by sending mail to k.lipskoch@jacobs-university.de with a subject line that begins with JTSK-320112. It is important that you do begin your subject with the coursenumber, otherwise I might have problems to identify your submission. • Pleasenote,thatafterthedeadlineitwillnotbepossibletosubmitanysolutions. Itisuselesstosend late solutions by mail, because they will not be accepted. This assignment is due by Wednesday, February 14th, 10:00 h.