C++ Exercises: Move all negative elements of an array of integers to the end of the array without changing the order of positive element and negative element
C++ Array: Exercise-18 with Solution
Write a C++ program to move all negative elements of an array of integers to the end of the array. This is done without changing the order of the positive and negative elements of the array.
Sample Solution:
C++ Code :
#include <iostream> // Header file for input/output stream
#include <cstring> // Header file for C-style string operations
using namespace std; // Using the standard namespace
// Function to segregate positive and negative elements in an array
void segregateElements(int nums[], int n)
{
int result[n]; // Array to store the segregated elements
int j = 0; // Index to track positive elements in the result array
for (int i = 0; i < n; i++) {
if (nums[i] >= 0)
result[j++] = nums[i]; // Store positive elements at the beginning of 'result'
}
// If all elements are positive or all elements are negative, return without further processing
if (j == n || j == 0)
return;
for (int i = 0; i < n; i++) {
if (nums[i] < 0)
result[j++] = nums[i]; // Store negative elements after positive elements in 'result'
}
// Copy the contents of 'result' back to 'nums'
memcpy(nums, result, sizeof(result));
}
// Main function
int main()
{
int nums[] = {0, 9, -7, 2, -12, 11, -20}; // Declaration and initialization of an integer array
int n = sizeof(nums) / sizeof(nums[0]); // Calculate the number of elements in the array
cout << "Original array: ";
for (int i = 0; i < n; i++)
cout << nums[i] << " "; // Output each element of the original array
segregateElements(nums, n); // Segregate positive and negative elements in the array
cout << "\nArray elements after rearrange: ";
for (int i = 0; i < n; i++)
cout << nums[i] << " "; // Output each element of the modified array after rearrangement
return 0;
}
Sample Output:
Original array: 0 9 -7 2 -12 11 -20 Array elements after rearrange: 0 9 2 11 -7 -12 -20
Flowchart:
C++ Code Editor:
Contribute your code and comments through Disqus.
Previous: Write a C++ program to sort (in descending order) an array in of distinct elements according to absolute difference of array elements and with a given value.
Next: Write a C++ program to find a number which occurs odd number of times of a given array of positive integers. In the said array all numbers occur even number of times.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/cpp-exercises/array/cpp-array-exercise-18.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics