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

Ханойская башня - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождение обратной матрицы http://www.cyberforum.ru/cpp-beginners/thread310065.html
Здравствуйте!помогите с программой на языке си-она демонстрирует нахождение обратной матрицы.я написал 3 на 3 юно мне надо в начале проги вводить количество строк и столбцов. Именуйте темы осмысленно! Название темы должно максимально полно отражать её содержимое.
C++ датчик случайных чисел Смоделировать подбрасывания монеты и падение ее на одну из сторон: лицевую ("решка") или обратную "орел"), т.е. с помощью датчика случайных чисел получить одно из целых чисел 0 или 1. http://www.cyberforum.ru/cpp-beginners/thread310063.html
C++ исправить ошибки в калькуляторе
исправить ошибки в калькуляторе http://narod.ru/disk/14686616001/%D0...D0%B2.rar.html и просьба выложить готовую программу на народе или еще где
подсказки в вижуал студио C++
у меня стоит VS2008 Expres раньше все было нормально, но потом (я наверно куда то не туда кликнул) исчезли подсказки(не знаю как правильно назвать) например, если я ввожу функцию, то раньше появлялся список параметов, а сейчас-нет если я навожу на макрос то должно появляться его определение, а сейчас этого нету как мне это исправить?
C++ дано слово из чётного количества букв.поменять местами первую и вторую букву третью и четвёртую букву и тд. http://www.cyberforum.ru/cpp-beginners/thread310048.html
дано слово из чётного количества букв.поменять местами первую и вторую букву третью и четвёртую букву и тд.
C++ Составить блок схему. Помогите составить блок схемы. int cash={10000,1000,500,100,50,10,5,1}; int num={0,0,0,0,0,0,0,0}; int i=0,sum=0,S; cout<<"S = \t"; cin>>S; while(sum!=S) { if(cash<=S-sum) подробнее

Показать сообщение отдельно
BUMER
 Аватар для BUMER
157 / 12 / 0
Регистрация: 01.04.2009
Сообщений: 103
01.06.2011, 15:15     Ханойская башня
Реализуется через структуры и списки. Рекурсивная функция присутствует.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <conio.h>
#include <stdio.h>
 
struct usel
{
    int key;
    usel *next;
};
struct sp
{
    usel *head;
    int n;
    void push(int k)
    {
        usel *p;
        p=new usel;
        p->key=k;
        p->next=head->next;
        head->next=p;
        n++;
    }
    int pop()
    {
        usel *p; int k;
        if(empty()) return -1;
        p=head->next;
        head->next=p->next;
        k=p->key;
        delete p;
        n--;
        return k;
    }
    bool empty()
    {
        if(head->next) return false;
        return true;
    }
    void print()
    {
        usel *p;
        if(head->next)
        {
            p=head->next;
            while(p->next)
            {
                printf("%d ", p->key);
                p=p->next;
            }
            printf("%d ", p->key);
        }
    }
    sp()            //конструктор
    {
        head=new usel;
        head->next=0;
        n=0;
    } 
};
 
void vyvod_bashni(sp *tower)            //на каждом шаге выводит состояние всех башен
{
    int i;
    for(i=0;i<3;i++)
    {
        printf("%d bashnja: ", i+1);
        tower[i].print();
        printf("\n");
    }
    printf("\n");
}
 
void hanoy(sp *tower, int n, int from, int to, int help)
{
    int i;
    if(n==1) tower[to].push(tower[from].pop());
    else
    {
        hanoy(tower,n-1,from,help,to);
        vyvod_bashni(tower);
        hanoy(tower,1,from,to,help);
        vyvod_bashni(tower);
        hanoy(tower,n-1,help,to,from);
    }
}
 
void main()
{
    sp tower[3]; int i, a, j, n;
    printf("Vvedite vysotu bashen: "); scanf("%d", &n);
    printf("Vvedite elementy I bashni: ");
    for(j=0;j<n;j++)
    {
        scanf("%d", &a);
        tower[0].push(a);
    }
    printf("\n");
    vyvod_bashni(tower);
    hanoy(tower,n,0,2,1);
    vyvod_bashni(tower);
    getch();
}
 
Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru