Вопрос задан 07.06.2023 в 14:52. Предмет Информатика. Спрашивает Мушаряпов Дмитрий.

Написати рекурсивну функцію обертання масиву(перший елемент змінюється з останнім , другий з

передостаннім і т.д.) С++
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Дерив Сергей.

#include <iostream>

void rotateArray(int arr[], int start, int end) {

if (start >= end) {

return;

}

// Зберігання першого елемента

int temp = arr[start];

// Виклик рекурсивної функції для обертання решти масиву

rotateArray(arr, start + 1, end);

// Заміна передостаннього елемента на перший

arr[end - 1] = temp;

}

int main() {

int arr[] = {1, 2, 3, 4, 5};

int n = sizeof(arr) / sizeof(arr[0]);

std::cout << "Original array: ";

for (int i = 0; i < n; i++) {

std::cout << arr[i] << " ";

}

std::cout << std::endl;

rotateArray(arr, 0, n);

std::cout << "Rotated array: ";

for (int i = 0; i < n; i++) {

std::cout << arr[i] << " ";

}

std::cout << std::endl;

return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ось приклад рекурсивної функції на C++, яка обертає масив:

cpp
#include <iostream> void reverseArray(int arr[], int start, int end) { if (start >= end) { return; // базовий випадок: якщо індекс початку більший або рівний індексу кінця, повертаємося } // Міняємо перший та останній елементи int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; // Викликаємо рекурсивно для підмасиву без першого та останнього елементів reverseArray(arr, start + 1, end - 1); } int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); std::cout << "Original array: "; for (int i = 0; i < size; i++) { std::cout << arr[i] << " "; } std::cout << std::endl; reverseArray(arr, 0, size - 1); std::cout << "Reversed array: "; for (int i = 0; i < size; i++) { std::cout << arr[i] << " "; } std::cout << std::endl; return 0; }

У цьому прикладі функція reverseArray приймає масив, індекс початку та індекс кінця підмасиву. Спочатку функція перевіряє базовий випадок, коли індекс початку більший або рівний індексу кінця. У цьому випадку функція повертається.

Якщо базовий випадок не виконується, функція міняє місцями перший та останній елементи підмасиву, використовуючи тимчасову змінну. Після цього вона рекурсивно викликає себе для підмасиву без першого та останнього елементів (збільшуючи індекс початку на 1 та зменшуючи індекс кінця на 1).

У головній функції main ми створюємо масив, виводимо його початковий стан, викликаємо функцію reverseArray і знову виводимо масив після обертання.

Вихідним результат

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос