Вывести вначале массива нечетные элементы, в конце - чётные - C (СИ)
Формулировка задачи:
Недавно начал изучение C, попалась такое задание в лабораторной работе. Первое задание, в котором надо было упорядочить массив в убывающем порядке, решилось просто, используя следующее:
Но как сделать так, чтобы выводились вначале массива нечетные элементы, в конце - чётные? Обязательно использование указателей.
void Bubble(int A[],int count){ int tmp,i,j; for ( i=0;i<count-1;i++) for ( j=0; j<count-1;j++) if (*(A+j) <*(A+j+1)) { tmp = *(A+j); *(A+j) = *(A+j+1); *(A+j+1) = tmp; }
Решение задачи: «Вывести вначале массива нечетные элементы, в конце - чётные»
textual
Листинг программы
#include <stdio.h> void func(int* array, int size) { int i, last, temp; last = size - 1; if ( last % 2 == 0 ) { last -= 1; } for ( i = 0; i < last; i += 2, last -= 2 ) { temp = *(array+i); *(array+i) = *(array+last); *(array+last) = temp; } } int main() { const int size = 10; int array[size]; int i, last, temp; for ( i = 0; i < size; i++ ) { scanf("%d", &*array+i); printf("%dindex=%d\n", i, *(array+i)); } func(array, size); for ( i = 0; i < size; i++ ) { printf("%d ", *(array+i)); } return 0; }
Объяснение кода листинга программы
Вывод нечетных элементов в начале и четных в конце можно объяснить следующим образом:
- В функции func происходит перестановка четных и нечетных элементов в массиве.
- Переменная
last
инициализируется значением размера массива минус один. - Если
last
делится на два без остатка, то вычитается единица, чтобы последняя пара четных элементов оказалась на своем месте. - В цикле происходит перестановка четных и нечетных элементов, начиная с начала массива и до предпоследнего элемента.
- Во втором цикле происходит вывод элементов массива в консоль.
- Возвращаемое значение функции func не используется.
- В функции main создается массив заданного размера и заполняется с помощью функции scanf.
- Вызывается функция func для перестановки четных и нечетных элементов.
- Выводится содержимое массива с помощью цикла и функции printf.
- Программа возвращает ноль, что означает успешный конец работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д