Сформировать новые последовательности, состоящие из четных и нечетных элементов исходной последовательности - 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) происходит следующее:
- Число из массива a копируется в массив b, начиная с индекса 0.
- Затем с помощью цикла while и условного оператора if это число сравнивается со всеми последующими числами в массиве a. Если число в массиве a больше текущего числа в массиве b, оно заменяет текущее число в массиве b.
- Если число в массиве a меньше или равно текущему числу в массиве b, оно оставляется на своем месте.
- После того, как все числа из массива a были проверены, оставшееся последнее число в массиве b будет являться результатом работы алгоритма для первой половины исходного массива a. Во второй части кода (откуда начинается с заголовка for) происходит аналогичная операция, но с массивом c вместо b. Однако в отличие от первой половины, где в массив b попадают только четные числа, во второй половине в массив c попадают только нечетные числа. В конце программы выводятся все три массива (a, b и c) на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д