Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как реализовать в рекурсивной ф-ии? передачу параметра по ссылке? 
V
    Опции темы
Riddik
Дата 26.12.2008, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Простая рекурсивная функция нахождения факториала:

Код

long faktorial(long fN)
{
    if(fN==0) return 1;
    fN=fN*faktorial(fN-1);
    cout<<" "<<fN;               // единственный способ увидеть результат?
    return fN;
}


Чтобы восновной программе можно было вывести на экран факториал числа:
Код

long rez;
...
cout<<faktorial(rez);

Нужно передать rez в функцию по ссылке.

Но если это указать в создании функции - компилятор выдаёт ошибку.

Код

long faktorial(long &fN)

Понятно, каждый раз при новом вызове переменная будет переписоваться. Но как тогда сделать - объявлять глобально тоже нельзя ведь...

PM MAIL   Вверх
mrbrooks
Дата 26.12.2008, 09:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Riddik, я чего то тебя не понимаю. Ты хочешь вернуть результат по ссылке и в то же время функция возвращает этот же результат? Если я прав - то встречный вопрос -а зачем?

PM MAIL   Вверх
Dmi3ev
Дата 26.12.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



а зачем че-то выдумывать, делай так:
Код

//---------------------------------------------------------------------------

#include <iostream.h>

//---------------------------------------------------------------------------
long factorial(long f)
{
if(f==0)
 return 1;
else
 return (f*factorial(f-1));
}

int main()
{
long f;
cout<<"Enter F:"<<endl;
cin>>f;
cout<<factorial(f);
return 0;
}
//---------------------------------------------------------------------------



--------------------

PM MAIL   Вверх
Riddik
Дата 26.12.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



mrbrooks]Dmi3ev
Да всё верно, я немного запарился, ночь уже была smile Сорри
Спасибо!

Это сообщение отредактировал(а) Riddik - 26.12.2008, 15:34
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0935 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.