Отсортировать по возрастанию четные элементы массива - 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;
- }
Объяснение кода листинга программы
В данном коде реализована сортировка по возрастанию четных элементов массива.
- В функции Swap происходит обмен значениями двух указателей. Это необходимо для обмена значениями между переменными a и b.
- В функции Sort происходит сортировка массива. Она работает следующим образом:
- На каждой итерации цикла, начиная с первого элемента, проверяется, является ли текущий элемент четным числом.
- Если текущий элемент четный, то он помечается как минимальный элемент.
- Затем происходит поиск меньшего четного элемента, чем текущий минимальный элемент. Если такой элемент найден, то он становится новым минимальным элементом.
- Если текущий элемент не является минимальным, то он меняется местами с минимальным элементом.
- После завершения цикла, массив будет содержать четные элементы, отсортированные по возрастанию.
- В функции main создается тестовый массив и вызывается функция Sort для его сортировки.
- Затем происходит вывод отсортированного массива на экран.
- Значения переменных:
- array - массив, который необходимо отсортировать.
- size - размер массива.
- i - переменная-счетчик для цикла в функции main.
- min - переменная для хранения минимального элемента в текущей итерации цикла в функции Sort.
- j - переменная-счетчик для цикла во внутреннем цикле функции Sort.
- tmp - временная переменная для хранения значения переменной a в функции Swap.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д