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

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

#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;
}



Ось приклад рекурсивної функції на 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
і знову виводимо масив після обертання.
Вихідним результат


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








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili