Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Учусь... все сложно...
0 / 0 / 0
Регистрация: 09.04.2019
Сообщений: 65

Рекурсивная функция осуществляющая вывод значений массива

08.01.2023, 05:27. Показов 525. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализовать рекурсивную функцию, осуществляющую
а) вывод значений массива на экран в прямом порядке;
б) вывод значений массива на экран в обратном порядке.

Есть вроде бы готовый код… но все равно что то не так… не понимаю как его ещё подправить?!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
#include <iostream> 
using namespace std; 
 
bool isPoly(int* arr, int size) 
{ 
 if (size <= 1) 
  return true; 
 if (arr[0] == arr[size - 1]) 
  return isPoly(&arr[1], size - 2); 
 else 
  return false; 
} 
 
int main() 
{ 
 setlocale(LC_ALL, "Russian"); 
  
 int n; 
 cout << "Сколько строк?: "; cin >> n; 
 int* arr = new int[n]; 
 
 cout << "Введите " << n << " строк(и):" << endl; 
 for (int i = 0; i < n; ++i) 
  cin >> arr[i]; 
 
 if (isPoly(arr, n)) 
  cout << "истина" << endl; 
 else 
  cout << "ложь" << endl; 
 
 delete[] arr; 
 return 0; 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2023, 05:27
Ответы с готовыми решениями:

Рекурсивная функция вычисления произведения значений частей массива
Для одномерного числового массива длиной n разработайте приложение с использованием рекурсивной функции вычисления произведения значений...

Рекурсивная функция для двухмерного массива, которая выполняет круговой сдвиг массива вправо
Здравствуйте. Помогите найти ошибку. Суть задачи. На С напишите рекурсивную функцию, которая принимает двухмерный массив целых чисел и ...

Функция, осуществляющая поиск в структуре
Здравствуйте уважаемые форумчане! Помогите, пожалуйста, разобраться со структурами. Суть программы в том, что в функции main создаётся...

3
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
08.01.2023, 05:58
Цитата Сообщение от FoxTail7 Посмотреть сообщение
Есть вроде бы готовый код
Готовый для чего ?
Это какой то левый код.

Добавлено через 44 секунды
Цитата Сообщение от FoxTail7 Посмотреть сообщение
не понимаю как его ещё подправить?!
Не нужно его править. Нужно взять и написать то что требуется в ТЗ.
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
08.01.2023, 06:03
FoxTail7, можно ли так ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
// а) вывод значений массива на экран в прямом порядке;
void F1(int a[], size_t sz, size_t p = 0)
{
    if (sz == p)
    {
        std::cout << std::endl;
        return;
    }
    std::cout << a[p] << " ";
    return F1(a, sz, p + 1);
}
// б) вывод значений массива на экран в обратном порядке.
void F2(int a[], size_t sz, size_t p = 0)
{
    if (sz == p)
    {
        std::cout << std::endl;
        return;
    }
    std::cout << a[sz - p - 1] << " ";
    return F2(a, sz, p + 1);
}
int main()
{
    int a[] = { 1,2,3,4,5,6,7,8,9,10 };
    size_t sz = 10;
    // а) вывод значений массива на экран в прямом порядке;
    F1(a, sz);
    // б) вывод значений массива на экран в обратном порядке.
    F2(a, sz);
    return 0;
}
2
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
08.01.2023, 06:18
Лучший ответ Сообщение было отмечено FoxTail7 как решение

Решение

Цитата Сообщение от Volga_ Посмотреть сообщение
можно ли так ?
Можно, хотя рекурсию не совсем так используют.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
void backward(int a[], size_t sz){
    if (!sz)
        return;
    --sz;
    std::cout << a[sz] << " ";
    backward(a, sz);
}
void forward(int a[], size_t sz){
    if (!sz)
        return;
    --sz;
    forward(a, sz);   
    std::cout << a[sz] << " ";    
}
int main(){
    int a[] = { 1,2,3,4,5,6,7,8,9,10 };
    size_t sz = 10;
    // а) вывод значений массива на экран в прямом порядке;
    forward(a, sz);
    std::cout << std::endl;
    // б) вывод значений массива на экран в обратном порядке.
    backward(a, sz);
    std::cout << std::endl;
}
Добавлено через 6 минут
Тоже самое, еще лаконичней :
C++
1
2
3
4
5
6
7
8
9
10
11
12
void backward(int a[], size_t sz){
    if (sz--){
        std::cout << a[sz] << " ";
        backward(a, sz);
    }
}
void forward(int a[], size_t sz){
    if (sz--){
        forward(a, sz);   
        std::cout << a[sz] << " ";    
    }
}
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2023, 06:18
Помогаю со студенческими работами здесь

Рекурсивная функция проверки массива
Помогите, пожалуйста. Нужно написать Рекурсивную функцию, проверяющую все ли числа массива равны 0 или 1 или 2. Добавлено через 7...

Рекурсивная функция печати массива
Напишите рекурсивную функцию печати массива, которая принимает массив и размер массива как аргументы и ничего не возвращает. Фунцкия должна...

Рекурсивная функция обработки массива
Написать рекурсивную функцию, которая: 1. Вводит массив размерности n с консоли 2. Выводит массив размерности n на консоль в одну...

Рекурсивная функция сортировки массива
Написать процедуру сортировки массива методом простого выбора.

Рекурсивная функция вывода массива
Имеются следующий json массив и js: { &quot;position&quot;: &quot;1&quot;, &quot;description&quot;: &quot;...&quot;, &quot;next&quot;: } ] ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru