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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
 
void Swap(int* a, int* b) {
    int tmp = *a;
    *a = *b;
    *b = tmp;
}
 
void Sort(int array[], unsigned size) {
    unsigned i, j, min;
 
    for (i = 0; i < size - 1; ++i) {
        if (array[i] % 2 == 0) {
            min = i;
            for (j = i + 1; j < size; ++j) {
                if ((array[j] % 2 == 0) && (array[j] < array[min])) {
                    min = j;
                }
            }
 
            if (i != min) {
                Swap(&array[min], &array[i]);
            }
        }
    }
}
 
int main() {
    int array[] = {8, 2, 3, 1, 5, 9, 4, 0, 6, 7};
    unsigned i;
 
    Sort(array, 10);
 
    for (i = 0; i < 10; ++i) {
        printf("%d ", array[i]);
    }
    printf("\n");
 
    return 0;
}

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

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

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

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


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

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

14   голосов , оценка 4 из 5
Похожие ответы