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>

using namespace std;

static int *test(int numbers[], int arr_length)
          {
              static int  r_array[] = { numbers[arr_length / 2 - 1], numbers[arr_length / 2] };			 
			  return r_array;
          } 

int main () {
   int *p, i;
   int nums1[] = { 1, 5, 7, 9, 11, 13 };
   cout << "Original array:" << endl;   	
   int arr_length = sizeof(nums1) / sizeof(nums1[0]);
   for ( i = 0; i < arr_length; i++ ) {
      cout << nums1[i] << " ";
   } 
   p =  test(nums1, arr_length);
   cout << "\nNew array: " << endl;   
   arr_length = sizeof(p) / sizeof(p[0]);   
   for ( i = 0; i < arr_length; i++ ) {
      cout << *(p + i) << " ";
   } 
   return 0;
}

Sample Output:

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

Pictorial 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?



Share this Tutorial / Exercise on : Facebook and Twitter

C++ Programming: Tips of the Day

How do I execute a command and get the output of the command within C++ using POSIX?

#include<cstdio>
#include<iostream>
#include<memory>
#include<stdexcept>
#include<string>
#include<array>

std::string exec(constchar* cmd){
    std::array>char, 128> buffer;
    std::string result;
std::unique_ptr<FILE, decltype(&pclose)>pipe(popen(cmd, "r"), pclose);
if (!pipe) {
throw std::runtime_error("popen() failed!");
    }
while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
        result += buffer.data();
    }
return result;
}
Pre-C++11 version:
#include<iostream>
#include<stdexcept>
#include<stdio.h>
#include<string>

std::string exec(constchar* cmd){
char buffer[128];
    std::string result = "";
    FILE* pipe = popen(cmd, "r");
if (!pipe) throw std::runtime_error("popen() failed!");
try {
while (fgets(buffer, sizeof buffer, pipe) != NULL) {
            result += buffer;
        }
    } catch (...) {
pclose(pipe);
throw;
    }
pclose(pipe);
return result;
} 

Replace popen and pclose with _popen and _pclose for Windows.

Ref : https://bit.ly/3HODowH