Поменять местами элементы правую и левую половины массива - C (СИ)

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

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

1. Заполните случайным образом одномерный массив из n элементов (n-четное) и поменяйте местами элементы правой и левой половины массива. Пример (для n = 8). Использовать указатели.

Решение задачи: «Поменять местами элементы правую и левую половины массива»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. void swap(int array[], int size) {
  6.     for ( int i = 0, j = size - 1; i < j; i++, j-- ) {
  7.         int temp;
  8.        
  9.         temp = array[i];
  10.         array[i] = array[j];
  11.         array[j] = temp;
  12.     }
  13. }
  14.  
  15. int main() {
  16.     int size;
  17.    
  18.     scanf("%d", &size);
  19.    
  20.     size -= size % 2;
  21.    
  22.     if ( size > 0 ) {
  23.         int array[size];
  24.         int last = size - 1;
  25.        
  26.         srand(time(NULL));
  27.    
  28.         for ( int i = 0; i < size; i++ ) {
  29.             array[i] = rand() % 100;
  30.             printf("%d ", array[i]);
  31.         }
  32.         printf("\n");
  33.        
  34.         swap(array, size);
  35.        
  36.         for ( int i = 0; i < last; i++ ) {
  37.             printf("%d ", array[i]);
  38.         }
  39.         printf("%d\n", array[last]);
  40.     }
  41.    
  42.     return 0;
  43. }

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

В данном коде реализована функция swap(), которая меняет местами элементы правой и левой половин массива. Код начинается с объявления функции swap(), которая принимает два аргумента: массив целых чисел array и его размер size. Далее в функции main() считывается размер массива с помощью функции scanf(). Затем выполняется проверка на нечетное количество элементов в массиве, если размер массива делится на 2 без остатка, то размер уменьшается на 1, чтобы получить четное количество элементов. Далее создается массив целых чисел array, инициализируется случайными числами от 0 до 99 с помощью функции rand(). Затем выводится на экран исходный массив с помощью цикла for и функции printf(). Далее вызывается функция swap(), которая меняет местами элементы правой и левой половин массива. Затем выводится на экран измененный массив с помощью цикла for и функции printf(). Код заканчивается возвратом функции main() равным 0.

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


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

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

11   голосов , оценка 3.545 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы