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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
#1

Присваивание значений параметрам в рекурсивной функции - C++

28.11.2013, 20:51. Просмотров 253. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
h('a','b','c',10);
void h(char a,char b,char c,int n)
{
if(n!=0)
{
    cout<<a<<"->"<<c<<endl;
h(a,c,b,n-1);
}
}
Подскажите пожалуйста почему например значение с на третьем вызове равно 'c', ведь c должно присваиваться значение 'b' Как они вообще присваиваются?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 20:51     Присваивание значений параметрам в рекурсивной функции
Посмотрите здесь:

Присваивание переменным значений при выбранном пункте ComboBox C++
C++ Присваивание значений одного класса другому.
Программa с использованием рекурсивной функции C++
Возникли вопросы по рекурсивной функции(Тест) C++
C++ Присваивание значений членам класса
Присваивание по ссылке в шаблонной функции C++
Использование рекурсивной функции C++
Из рекурсивной функции в не рекурсивную C++
C++ Создание потоков в рекурсивной функции
C++ Проверка аргументов рекурсивной функции
Схема рекурсивной функции C++
C++ Как запретить присваивание по возвращённой из функции ссылке?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
daslex
1088 / 498 / 102
Регистрация: 02.08.2011
Сообщений: 2,479
29.11.2013, 17:15     Присваивание значений параметрам в рекурсивной функции #2
1. a=1 b=2 c=3 --> (принятое c=3 и на вывод его) --> далее вызов h(1,3,2)-->
2. a=1 b=3 с=2 --> c=2 на вывод 2 --> вызов h(1,2,3) -->
3. a=1,b=2,c=3 --> h(1,3,2) -->
4. a=1,b=3,c=2 --> h(1,2,3) и т.д.
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
29.11.2013, 19:39  [ТС]     Присваивание значений параметрам в рекурсивной функции #3
С этим я разобрался. Спасибо. Сделал изменение стека для ханойской башни.Правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
void h(char a,char b,char c,int n);
int main()
{
setlocale(LC_ALL,"Russian");
h('a','b','c',3);
system("pause");
    return 0;
}
void h(char a,char b,char c,int n)
{
if(n==0)
return;
h(a,c,b,n-1);
cout<<a<<"->"<<c<<n<<endl;
h(b,a,c,n-1);
}
Миниатюры
Присваивание значений параметрам в рекурсивной функции  
Yandex
Объявления
29.11.2013, 19:39     Присваивание значений параметрам в рекурсивной функции
Ответ Создать тему
Опции темы

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