Поменять местами элементы правую и левую половины массива - C (СИ)
Формулировка задачи:
Решение задачи: «Поменять местами элементы правую и левую половины массива»
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int array[], int size) {
for ( int i = 0, j = size - 1; i < j; i++, j-- ) {
int temp;
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
int main() {
int size;
scanf("%d", &size);
size -= size % 2;
if ( size > 0 ) {
int array[size];
int last = size - 1;
srand(time(NULL));
for ( int i = 0; i < size; i++ ) {
array[i] = rand() % 100;
printf("%d ", array[i]);
}
printf("\n");
swap(array, size);
for ( int i = 0; i < last; i++ ) {
printf("%d ", array[i]);
}
printf("%d\n", array[last]);
}
return 0;
}
Объяснение кода листинга программы
В данном коде реализована функция swap(), которая меняет местами элементы правой и левой половин массива. Код начинается с объявления функции swap(), которая принимает два аргумента: массив целых чисел array и его размер size. Далее в функции main() считывается размер массива с помощью функции scanf(). Затем выполняется проверка на нечетное количество элементов в массиве, если размер массива делится на 2 без остатка, то размер уменьшается на 1, чтобы получить четное количество элементов. Далее создается массив целых чисел array, инициализируется случайными числами от 0 до 99 с помощью функции rand(). Затем выводится на экран исходный массив с помощью цикла for и функции printf(). Далее вызывается функция swap(), которая меняет местами элементы правой и левой половин массива. Затем выводится на экран измененный массив с помощью цикла for и функции printf(). Код заканчивается возвратом функции main() равным 0.