• Предмет: Информатика
  • Автор: blevanylnapol1488
  • Вопрос задан 4 месяца назад

C++
Відсортувати за зростанням лише парні елементи масиву цілих чисел.

Ответы

Ответ дал: dwweee
1

#include <algorithm>  // для std::sort

#include <iostream>

void sortEvenElements(int *array, int size)

{

   std::sort(array, array + size, [](int a, int b) {

       // сортувати за зростанням, якщо обидва елементи парні

       if (a % 2 == 0 && b % 2 == 0) return a < b;

       // залишити елементи без змін, якщо один з них непарний

       return false;

   });

}

int main()

{

   int array[] = {7, 4, 8, 1, 3, 6, 5, 2};

   int size = sizeof(array) / sizeof(array[0]);

   sortEvenElements(array, size);

   for (int i = 0; i < size; ++i)

       std::cout << array[i] << " ";

   return 0;

}

-------------------------------------------------------------------------------------------
В результаті буде отримано наступне:
7 4 8 1 3 6 5 2



Зверніть увагу, що функція sortEvenElements отримує аргументами масив та його розмір, а для сортування парних елементів за зростанням використовує функцію std::sort. Функція отримує третім аргументом компаратор, який задає критерії сортування. У цьому випадку компаратор повертає true тільки у випадку, якщо обидва порівнювані елементи парні, і тоді вони сортуються за зростанням. Якщо один з елементів непарний, компаратор повертає значення false, що залишає елементи без змін.


blevanylnapol1488: дякую за пояснення
Вас заинтересует