Отсортировать по возрастанию четные элементы массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Отсортировать по возрастанию четные элементы массива.

Решение задачи: «Отсортировать по возрастанию четные элементы массива»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void Swap(int* a, int* b) {
  4.     int tmp = *a;
  5.     *a = *b;
  6.     *b = tmp;
  7. }
  8.  
  9. void Sort(int array[], unsigned size) {
  10.     unsigned i, j, min;
  11.  
  12.     for (i = 0; i < size - 1; ++i) {
  13.         if (array[i] % 2 == 0) {
  14.             min = i;
  15.             for (j = i + 1; j < size; ++j) {
  16.                 if ((array[j] % 2 == 0) && (array[j] < array[min])) {
  17.                     min = j;
  18.                 }
  19.             }
  20.  
  21.             if (i != min) {
  22.                 Swap(&array[min], &array[i]);
  23.             }
  24.         }
  25.     }
  26. }
  27.  
  28. int main() {
  29.     int array[] = {8, 2, 3, 1, 5, 9, 4, 0, 6, 7};
  30.     unsigned i;
  31.  
  32.     Sort(array, 10);
  33.  
  34.     for (i = 0; i < 10; ++i) {
  35.         printf("%d ", array[i]);
  36.     }
  37.     printf("\n");
  38.  
  39.     return 0;
  40. }

Объяснение кода листинга программы

В данном коде реализована сортировка по возрастанию четных элементов массива.

  1. В функции Swap происходит обмен значениями двух указателей. Это необходимо для обмена значениями между переменными a и b.
  2. В функции Sort происходит сортировка массива. Она работает следующим образом:
    • На каждой итерации цикла, начиная с первого элемента, проверяется, является ли текущий элемент четным числом.
    • Если текущий элемент четный, то он помечается как минимальный элемент.
    • Затем происходит поиск меньшего четного элемента, чем текущий минимальный элемент. Если такой элемент найден, то он становится новым минимальным элементом.
    • Если текущий элемент не является минимальным, то он меняется местами с минимальным элементом.
    • После завершения цикла, массив будет содержать четные элементы, отсортированные по возрастанию.
  3. В функции main создается тестовый массив и вызывается функция Sort для его сортировки.
    • Затем происходит вывод отсортированного массива на экран.
  4. Значения переменных:
    • array - массив, который необходимо отсортировать.
    • size - размер массива.
    • i - переменная-счетчик для цикла в функции main.
    • min - переменная для хранения минимального элемента в текущей итерации цикла в функции Sort.
    • j - переменная-счетчик для цикла во внутреннем цикле функции Sort.
    • tmp - временная переменная для хранения значения переменной a в функции Swap.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы