w3resource

C++ Exercises: Create an array taking two middle elements from a given array of integers of length even

C++ Basic Algorithm: Exercise-94 with Solution

Write a C++ program to create an array taking two middle elements from a given array of integers of length even.

Sample Solution:

C++ Code :

#include <iostream>  // Including input-output stream header file

using namespace std;  // Using standard namespace

static int *test(int numbers[], int arr_length)  // Function definition that returns a pointer to an array
{
    static int  r_array[] = { numbers[arr_length / 2 - 1], numbers[arr_length / 2] };  // Creating a new array with elements from the middle of 'numbers' array
    return r_array;  // Returning a pointer to the newly created array
} 

int main () {
   int *p, i;  // Declaring pointer variable p and integer i
   int nums1[] = { 1, 5, 7, 9, 11, 13 };  // Initializing array nums1 with values
   cout << "Original array:" << endl;   	
   int arr_length = sizeof(nums1) / sizeof(nums1[0]);  // Calculating length of array nums1

   for ( i = 0; i < arr_length; i++ ) {  // Loop to print elements of the nums1 array
      cout << nums1[i] << " ";  // Printing elements of the nums1 array
   } 

   p =  test(nums1, arr_length);  // Calling the test function and storing the returned pointer in p

   cout << "\nNew array: " << endl;   // Printing a message

   arr_length = sizeof(p) / sizeof(p[0]);  // Recalculating length of array pointed by p (This may not work as intended, see explanation below)

   for ( i = 0; i < arr_length; i++ ) {  // Loop to print elements of the array pointed by p
      cout << *(p + i) << " ";  // Printing elements of the array pointed by p
   } 

   return 0;  // Returning 0 to indicate successful completion of the program
}

Sample Output:

Original array:
1 5 7 9 11 13
New array:
7 9

Visual Presentation:

C++ Basic Algorithm Exercises: Create an array taking two middle elements from a given array of integers of length even.

Flowchart:

Flowchart: Create an array taking two middle elements from a given array of integers of length even.

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C++ program to check a given array of integers, length 3 and create a new array. If there is a 5 in the given array immediately followed by a 7 then set 7 to 1.
Next: Write a C++ program to create a new array swapping the first and last elements of a given array of integers and length will be least 1.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.