Сформировать новые последовательности, состоящие из четных и нечетных элементов исходной последовательности - C (СИ)

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

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

Дана последовательность из n целых элементов. Сформировать две новых последовательности, состоящих соответственно из четных и нечетных (по индексу) элементов исходной последовательности. Элементы в результирующих последовательностях должны быть отсортированы по убыванию. Все последовательности: исходную и полученные вывести на экран.

Решение задачи: «Сформировать новые последовательности, состоящие из четных и нечетных элементов исходной последовательности»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#define SIZE 5 
int main() {
   int a[]={5, 2, 9, 1, 7, 6, 3, 8, 1, 4};
    int b[SIZE], c[SIZE];
    int cnt=0, i;
    for (i=0; i<SIZE; i++){
        int j;
        //put_num(a[cnt], b, i);
        j=i;
        while(j>0 && b[j-1]>a[cnt]){ 
            b[j]=b[j-1];
            j--;
        }
        b[j]=a[cnt];
        cnt++;
        //put_num(a[cnt], c, i);
        j=i;
        while(j>0 && c[j-1]>a[cnt]){ 
            c[j]=c[j-1];
            j--;
        }
        c[j]=a[cnt];
        cnt++;
    }
    for (i=0; i<cnt; i++)
        printf("%d ", a[i]);
    printf("\n");
    for (i=0; i<SIZE; i++)
       printf("%d ", b[i]);
    printf("\n");
    for (i=0; i<SIZE; i++)
       printf("%d ", c[i]);
    printf("\n");
   getchar();
   return 0;
}

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

В этом коде есть три массива: a, b и c. Массив a содержит исходные числа, а массивы b и c используются для хранения полученных последовательностей. В первой части кода (откуда начинается с заголовка for) происходит следующее:

  1. Число из массива a копируется в массив b, начиная с индекса 0.
  2. Затем с помощью цикла while и условного оператора if это число сравнивается со всеми последующими числами в массиве a. Если число в массиве a больше текущего числа в массиве b, оно заменяет текущее число в массиве b.
  3. Если число в массиве a меньше или равно текущему числу в массиве b, оно оставляется на своем месте.
  4. После того, как все числа из массива a были проверены, оставшееся последнее число в массиве b будет являться результатом работы алгоритма для первой половины исходного массива a. Во второй части кода (откуда начинается с заголовка for) происходит аналогичная операция, но с массивом c вместо b. Однако в отличие от первой половины, где в массив b попадают только четные числа, во второй половине в массив c попадают только нечетные числа. В конце программы выводятся все три массива (a, b и c) на экран.

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


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

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

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