кодесурса
«C ++

Упражнения на C ++: разделение четных и нечетных чисел массива целых чисел. Сначала ставьте все четные числа, а затем нечетные

script1adsense2code
script1adsense3code

C ++ Array: Упражнение 13 с решением

Напишите программу на C ++ для разделения четных и нечетных чисел массива целых чисел. Сначала ставьте все четные числа, а затем нечетные.

Пример решения:

Код C ++:

#include<iostream>
using namespace std;
 
void swap(int *x, int *y)
{
    int temp = *x;
    *x = *y;
    *y = temp;
}
 
void segregateEvenOdd(int nums[], int size)
{
    int left_num = 0, right_num = size-1;
    while (left_num < right_num)
    {
         while (nums[left_num]%2 == 0 && left_num < right_num)
            left_num++;
 
        while (nums[right_num]%2 == 1 && left_num < right_num)
            right_num--;
 
        if (left_num < right_num)
        {
            swap(&nums[left_num], &nums[right_num]);
            left_num++;
            right_num--;
        }
    }
}
 
int main()
{
    int nums[] = {0, 1, 3, 4, 5, 6, 7, 8, 10};
    int n = sizeof(nums)/sizeof(nums[0]);
   	cout << "Original array: ";
    for (int i=0; i < n; i++) 
    cout << nums[i] <<" ";
    segregateEvenOdd(nums, n);
 
    printf("\nArray after divided: ");
      for (int i=0; i < n; i++) 
      cout << nums[i] <<" ";
        return 0;
     }

Пример вывода:

 Исходный массив: 0 1 3 4 5 6 7 8 10 
Массив после деления: 0 10 8 4 6 5 7 3 1  

Блок - схема:

«Блок-схема:

Редактор кода C ++:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на C ++ для перегруппировки элементов данного массива целых чисел зигзагообразным способом.
Далее: Напишите программу на C ++, чтобы отделить 0 и 1 от заданного массива значений 0 и 1.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code