Write a program in a new file called split.cpp which reads a list of numbers into an array, splits the list into a list of negative numbers and a list of non-negative numbers, each in their separate arrays, and then outputs the arrays of negative and non-negative numbers. A negative integer is one that is strictly less than 0. All other integers are non-negative integers. The program should use the command new to allocate arrays of exactly the correct size.
The program should have a function count() for counting the number of negative elements and the number of non-negative elements of an array, a function split() for splitting the list into negative and non-negative lists, and a function print_array() for printing an array of numbers.
Run split_solution.exe to see an example of the program.
-
All functions should be written AFTER the main procedure.
-
A function prototype should be written for each function and placed BEFORE the main
procedure.
-
Each function should have a comment explaining what it does.
-
Each function parameter should have a comment explaining the parameter.
-
Prompt for the number of elements of the list.
-
Allocate an array whose size equals the number of elements specified by the user.
-
Read into the array the elements of the list.
-
Write a function count() which counts the number of negative elements and the number of non-negative elements of an array. The function should take four parameters, the array, the number of elements in the array, the number of negative elements and the number of non- negative elements.
The function sets the number of negative and non-negative elements but does not return any value.
-
In the main program, call the function count() to get the number of negative elements and the number of non-negative elements of the array.
-
Allocate an array whose size equals the number of negative elements.
-
Allocate an array whose size equals the number of non-negative elements.
-
Write a function split() which takes as input 3 arrays, A, B, and C, and stores the negative elements ofA in B and the non-negative elements of A in C. (Use better array names than A, B, and C). The size of array B should be exactly the number of negative elements in array A. The size of array C should be exactly the number of non-negative elements in A.
As you copy elements from A to B or C, count the number of elements copied to each array. When the function completes, check that the number copied equals exactly the array size. If it does not, print an error message and exit.
The function should take six parameters, array A, the size of array A, array B, the size of array B, arrayC, and the size of array C.
The function modifies arrays B and C but does not return any value.
-
Write a function print_array() which prints the elements of an array. The function should take two parameters, the array and the array length. The function does not modify or return any values.
-
14. In the main program, call the function split(), passing the input array and the arrays whose sizes equal the number of even and odd elements.
-
In the main program, print the phrase "Negative elements: ". Print the array of negative elements using the function print_array().
-
In the main program, print the phrase "Non-negative elements: ". Print the array of negative elements using the function print_array().
-
Free the three dynamically allocated arrays. (Points will be deducted if you do not free the arrays).
-
Be sure to add the header comments "File", "Created by", "Creation Date" and "Synopsis" at the top of the file. Each synopsis should contain a brief description of what the program does.
-
Be sure that there is a comment documenting each variable.
-
Be sure that your if statements, for and while loops and blocks are properly indented;
-
Check your output against the output from the solution executables provided.
22. Note: This lab requires you to dynamically allocate arrays of appropriate size. A large number of points will be deducted if you do not use dynamically allocated arrays, or do not allocate arrays of the correct size.