Форум программистов, компьютерный форум CyberForum.ru

Рекурсия с указателем на массив - C++

Восстановить пароль Регистрация
 
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
22.05.2013, 18:22     Рекурсия с указателем на массив #1
с мэйна вызываю функцию в которую передаю ссылку посредством указателя на массив. потом делаю рекурсию в самой вызыванной функции:
C++
1
2
3
4
int summ(int *arr, int i,int N)
{
        return summ(arr,i++,N);
}
как мне обратно передавать туда не указатель а сам массив. а то первый аргумент получается **,*** и так далее
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WolondeWord
6 / 6 / 1
Регистрация: 06.05.2013
Сообщений: 18
22.05.2013, 18:33     Рекурсия с указателем на массив #2
"int summ(int *arr, int i,int N)"
передавай "int *&arr"
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
22.05.2013, 18:49  [ТС]     Рекурсия с указателем на массив #3
Цитата Сообщение от WolondeWord Посмотреть сообщение
"int summ(int *arr, int i,int N)"
передавай "int *&arr"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int summ(int *arr, int i,int N);
int main(void)
{
const int N=3;
int arr[N];
for(int i=0;i<N;i++)
{
    cout<<"array["<<i<<"]: ";
    cin>> arr[i];
}
summ(arr,0,N);
system("pause");
return 0;
}
int summ(int *arr, int i,int N)
{
    while(i<N)
    return summ(*&arr,i++,N);
}
не выходи.. кто в силах объяснить почему ошибка и как избежать?
WolondeWord
6 / 6 / 1
Регистрация: 06.05.2013
Сообщений: 18
23.05.2013, 02:13     Рекурсия с указателем на массив #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
#include <iostream>
using namespace std;
int summ(int *arr, int &i,int N);
int main(void)
{
    const int N=3;
 
    int *arr;
    arr = new int [N]; //Динамический массив. Мне с ними удобнее работать)
 
    for(int i=0;i<N;i++)
    {
        cout<<"array["<<i<<"]: ";
        cin>> arr[i];
    }
 
    int t = 0; // создал счетчик
 
    summ(arr,t,N);
    cout << "t = " << t << endl; // вывод t на экран.
    system("pause");
    return 0;
}
 
int summ(int *arr, int &i,int N) // тут передаем формальный параметр i по ссылке, так как он изменяется в ходе выполнения функции.
{
    while(i<N)
        return summ(arr,i += 1,N); // здесь именно так для собственного удобства
}
Добавлено через 4 минуты
Извиняюсь, что вчера вышел. Просто у меня уже ночь была)) 3 утра. Спать хотелось)
Yandex
Объявления
23.05.2013, 02:13     Рекурсия с указателем на массив
Ответ Создать тему
Опции темы

Текущее время: 08:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru