С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 51
1

Recursion and pointers. Array in reverse order

10.09.2015, 08:54. Показов 1417. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача:
Suppose that intArray is an array of integers, and length specifies the number of elements in intArray. Also, suppose that low and high are two integers such that 0 <= low < length, 0 <= high < length, and low < high. That is, low and high are two indices in intArray. Write a recursive definition that reverses the elements in intArray between low and high.

Пишет данную ошибку:
undefined reference to rec(int*, int, int)
,подскажите как исправить.

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
35
#include <iostream>
using namespace std;
 
 
int rec(int array[], int low, int high);
 
int main()
{
 
     int size;
     
     cout << "Enter the length of the array";
     cin >> size;
     cout <<endl;
     
     int * arra = new int[size];
 
 
    cout <<"enter elements into the array";
    for(int i=0; i<size;i++)
    {
        cin >>arra[i];
    }
 
    rec(arra ,0,4);
     
 
}
 
void rec(int* array[], int low, int high)
    {
        if(low<=high)
        cout << "Reverse order: " << array[high] << " ";
        rec(array,low, high -1);
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
10.09.2015, 08:54
Ответы с готовыми решениями:

Display given sequence in reverse order
Given a positive integer N and sequence of N elements. You have to display given sequence in...

Почему array reverse на указателях медленнее, чем обычный?
Всем привет. Решил сравнить скорость работы алгоритма реверса массива. Думал на указателях...

HSQL запрос. Что не так? "from hiberdata.Order order where order.clientId=?"
public List loadOrdersByClientId(Integer clientId) { return getHibernateTemplate().find( 'from...

Qt smart pointers vs std smart pointers
В каких случаях лучше использовать Q*Pointer, а в каких std::*_ptr, или с наследниками QObject...

12
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
10.09.2015, 09:03 2
В хедере опиши функцию
0
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 51
10.09.2015, 09:07  [ТС] 3
Не помогло
cannot convert 'int*' to 'int**' for argument '1' to 'int rec(int**, int, int)'
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
10.09.2015, 09:17 4
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
void rec(int array[], int low, int high)
    {
        if(low<=high)
        cout << "Reverse order: " << array[high] << " ";
        rec(array,low, high -1);
}
 
int main(int argc, char* argv[])
{
int size;
 
     cout << "Enter the length of the array";
     cin >> size;
     cout <<endl;
 
     int * arra = new int[size];
 
 
    cout <<"enter elements into the array";
    for(int i=0; i<size;i++)
    {
        cin >>arra[i];
    }
 
    rec(arra ,0,4);
 
 
     
}
Проверено

Добавлено через 5 минут
Ошибок нет но с функцией беда
Чесно я твою функцию не понял
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
10.09.2015, 09:19 5
Цитата Сообщение от Rabbit Посмотреть сообщение
C++
1
int rec(int array[], int low, int high); // прототип
Цитата Сообщение от Rabbit Посмотреть сообщение
C++
1
void rec(int* array[], int low, int high) // реализация
найдите 10 отличий
0
Администратор
Эксперт .NET
9624 / 4768 / 762
Регистрация: 17.04.2012
Сообщений: 9,620
Записей в блоге: 14
10.09.2015, 09:33 6
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
найдите 10 отличий
Нашёл 2
1
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
10.09.2015, 09:51 7
Была бы здесь только беда
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
10.09.2015, 09:54 8
Цитата Сообщение от Игорь1986 Посмотреть сообщение
Была бы здесь только беда
согласен, там еще и бесконечная рекурсия.
0
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 51
10.09.2015, 10:00  [ТС] 9
Помогите пжл исправить беду

Добавлено через 5 минут
Как я понимаю последний элемент выводится как он есть, а остальные элементы меняются местами?
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
10.09.2015, 10:00 10
Насколько я понял из задания, надо сделать 2 массива элементов, а затем переставить местами между массивами вроде,
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
10.09.2015, 10:07 11
Rabbit,
C++
1
2
3
4
5
6
7
8
void reverse_array(int *arr, int low, int high)
{
    if (low < high)
    {
        std::swap(arr[low], arr[high]);
        reverse_array(arr, low+1, high-1);
    }
}
0
0 / 0 / 1
Регистрация: 05.09.2015
Сообщений: 51
10.09.2015, 10:09  [ТС] 12
intArray = [1 2 3 4 5 6] ,low =0, high =5 -> the function must reverse the array [1 2 3 4 5 6] to become [6 5 4 3 2 1]
If intArray = [1 2 3 4 5 6] ,low =2, high =4 -> the function must reverse the array [3 4 5] to become [5 4 3]
0
156 / 143 / 62
Регистрация: 08.09.2014
Сообщений: 1,220
10.09.2015, 10:15 13
Так желательно чтобы и ввод low, high тоже был, а то явно задал
0
10.09.2015, 10:15
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
10.09.2015, 10:15
Помогаю со студенческими работами здесь

recursion with variadic template
#define NOT_COMPILE 1 #if NOT_COMPILE // так не компилится template &lt;class Type, unsigned...

Recursion. 2 integers are multiplied together
Объясните пжл выполнение данной рекурсии пошагово. Например, возьмем recur(3,2) и recur(2,4) ...

Maximum recursion depth exceeded in comparison
Решил проверить время сортировки на разных по длине списках. При 10 и 100 элементах работает...

Pointers
Здравствуйте, не могу понять принцип указателей, можете пожалуйста объяснить почему в этом коде ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru