Упражнения на C ++: разделение четных и нечетных чисел массива целых чисел. Сначала ставьте все четные числа, а затем нечетные
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 программирования
disqus2code