Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 8

Почему при выборе switch у меня не работает вывод дерева на экран?!

07.07.2011, 12:27. Показов 837. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//////////////////////////////////////////////////////
//                                                  //
// Ñîçäàòü ïðîãðàììó äëÿ ðàáîòû ñ áèíàðíûì äåðåâîì, //
// ðåàëèçóþùóþ ôóíêöèè: äîáàâèòü ýëåìåíò,           //
// óäàëèòü ýëåìåíò, âûâåñòè â âèäå "äåðåâà"         //
//                                                  //
//////////////////////////////////////////////////////
 
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <new.h>
#define maximal 50
struct tree_el
{
int a;  //a-÷èñëî
tree_el *left;      //óêàçàòåëü ëåâîãî ïîääåðåâà
tree_el *right;    //óêàçàòåëü ïðàâîãî ïîääåðåâà
};
void add_item(int,struct tree_el **); // äîáàâëåíèå ýëåìåíòà
void out_tree(struct tree_el*, int,int,int); // âûâîä äåðåâà
void delet_item(struct tree_el**, int); // óäàëåíèå ýëåìåíòà
void view_menu(void);  //âûâîä â ìåíþ
void main(void)
 
{
struct tree_el *root=NULL;  //óêàçàòåëü íà êîðåíü
int mas[maximal];           //ìàññèâ äëÿ õðàíåíèÿ äåðåâà
int k,m,a;
 
do
{
clrscr();
view_menu();       //âûâîä ìåíþ
//m=getch()-'0';
fflush(stdin);
scanf("%d",&m);
switch(m)      //îáðàáîòêà âûáîðà
{case 1: clrscr();
         cout<<"Dobavlenie uzla"<<endl;
         cout<<"vvedite chislo:"; cin>>a;
         add_item(a,&root); break;
 
 case 2: clrscr();
         cout<<"vyvod dereva"<<endl;
         out_tree(root,1,80,7);
          break;
     
 case 3: clrscr();
         cout<<"Udalenie uzla"<<endl;
         cout<<"vvedite chislo:";
         cin>>a;
         delet_item(&root,a);
         break;
        }
    } while (m);
}
 
 
void add_item(int a,struct tree_el **p) // äîáàâëåíèå ýëåìåíòà
{int c;
if (!*p)  // åñëè ïîääåðåâà íåò
{set_new_handler(0);
    if ((*p=new struct tree_el)==NULL)
            {cout<<"ne hvataet OP"<<endl;
            return;
            }
   (*p)->a=a;    //ñîçäàåì íîâûé ýëåìåíò
   (*p)->left=(*p)->right=NULL;
}
else
{c=((*p)->a)-a;
    if (c>0) add_item(a,&((*p)->left)); //èäåì âëåâî
    else if (c<0) add_item(a,&((*p)->right)); //èäåì âïðàâî
      else cout <<"element"<<a<<"uzhe est"<<endl;
      }
      }
 
 void out_tree(struct tree_el *p, int lb,int rb,int r) // âûâîä â âèäå äåðåâà
 // lb-ëåâàÿ ãðàíèöà ïîääåðåâà
 // rb-ïðàâàÿ ãðàíèöà ïîääåðåâà
 { if (p)    //åñëè ïîääåðåâî íå íóëåâîå
 {gotoxy ((lb+rb)/2,r);    //êóðñîð ìåæäó ãðàíèöàìè ïîääåðåâà óðîâíÿ r
 cout<<p->a<<endl;     //âûâîäèì êîðåíü ïîääåðåâà
 out_tree(p->left,lb,(lb+rb)/2,r+1);  //âûâîäèì ëåâîå ïîääåðåâî
 out_tree(p->right,(lb+rb)/2,rb,r+1);  //âûâîäèì ïðàâîå ïîääåðåâî
 }
 }
 
 void delet_item(tree_el**p, int a) // óäàëåíèå ýëåìåíòà
 {if (!*p)                           //åñëè ïðîøëè äåðåâî
 {cout<<"Takogo elementa net"<<endl;
 return;
 }
 if (a<(*p)->a) delet_item(&(*p)->left,a);     //èäåì âëåâî
 else if  (a>(*p)->a) delet_item(&(*p)->right,a);          //èäåì âïðàâî
 else
 {tree_el *lt, *rt;  //èíà÷å óäàëÿåì ýëåìåíò
 lt=(*p)->left;      //ñîõðàíÿåì ñâÿçè
 rt=(*p)->right;    //ñîõðàíÿåì ñâÿçè
 delete *p;          //óäàëÿåì óçåë
 *p=rt;        //íà åãî ìåñòî - ïðàâîå ïîääåðåâî
 while (*p)    //ïî ïðàâîìó ïîääåðåâó
 p=&(*p)->left;  //ñïóñêàåòñÿ âëåâî äî ëèñòà
 *p=lt;        //åñëè ïðàâîãî ïîääåðåâà íå áûëî, òî ëåâîå ñòàíåò íà ìåñòî óäàëåííîãî óçëà
 }
 }
 
void view_menu(void)  //âûâîä â ìåíþ
{clrscr();
   cout<<"1-dobavlenie uzla"<<endl;
   cout<<"2-vyvod dereva"<<endl;
   cout<<"3-udalenie uzla"<<endl;
   cout<<"0-vyhod"<<endl;
   cout<<"Nazhmite sootvetstvujuschuju klavischu"<<endl;
}
У меня все работает, только, когда я включаю вывести дерево, оно мне его не выводит..(((

Добавлено через 14 минут
Цитата Сообщение от katrin_ Посмотреть сообщение
C++
1
2
3
4
 case 2: clrscr();
         cout<<"vyvod dereva"<<endl;
         out_tree(root,1,80,7);
          break;
я добавила строчку c>>a;
оно стало выводить просто: vyvod dereva, а само дерево мне не вывело((( что мне нужно еще сделать?! в чем ошибка?!(((

Добавлено через 1 минуту
C++
1
2
3
4
5
case 2: clrscr();
         cout<<"vyvod dereva"<<endl;
         out_tree(root,1,80,7);
         cin>>a; // эту строчку я добавила=)
          break;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.07.2011, 12:27
Ответы с готовыми решениями:

Не могу понять почему не работает. Создаю игру Пятнашки. И ничего у меня не работает. И ошибки при запуске выдает
Не могу понять почему не работает. Создаю игру Пятнашки. И ничего у меня не работает. И ошибки при запуске выдает. Вот, подскажите...

При выборе узла дерева не снимать выделение с дерева, а переводить курсор в datagridview
на форме treeview(слева)datagridview(справа).мне надо чтобы при выборе узла дерева выделение с дерева не снималось а курсор переходил бы в...

[Boostrap, jQuery], почему при размере col-xs у меня не работает show и hide?
Есть такой код jQuery: &lt;script&gt; function func() { a=1; } function func1() { a=0; }

3
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 21:15
слишком много enter-ов.
попробуй #include <windows.h>
и вместо cin>>a;
getch();

пс: у меня работает.
1
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 8
07.07.2011, 23:38  [ТС]
при getch();
тот же эффект... не работало вывод дерева...
хорошо, спасибо, я еще введу
#include <windows.h>

спасибо
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
08.07.2011, 10:47
Цитата Сообщение от katrin_
У меня все работает, только, когда я включаю вывести дерево, оно мне его не выводит
а оно создаётся ?
как ты узнаешь, что элемент добавился ?

C++
1
gotoxy ((lb+rb)/2,r);
закомментируй эту строку
ещё обязательно нужно сначала создать дерево, а потом выводить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2011, 10:47
Помогаю со студенческими работами здесь

При выборе критерий выводит: "Данных в базе не найдено". Почему не работает?
форма&lt;form method=&quot;POST&quot; action=&quot;input.php&quot;&gt; &lt;p&gt;Выбор района&lt;/p&gt; &lt;p&gt; &lt;input type=&quot;checkbox&quot; checked...

Косяк при выборе операции через switch в калькуляторе
всем доброго времени суток. пишу тут курсач и столкнулся со следующей проблемой: в консоли само по себе вписывается значение 0 и программа...

Выбор: Как сделать, чтобы switch выполнялся только при выборе от 1 до 3-х?
Добрый вечер! Как сделать чтобы при выборе от 1 до 3-х, switch выполнялся, а в любых других случаях он не выполнялся? #include...

Почему не работает switch
&lt;meta charset=&quot;UTF-8&quot;&gt; &lt;script&gt; &quot;use strict&quot;; let a = parseInt(+prompt('Введите произвольное целое число')); let b =...

Почему не работает switch?
Оошибок не выдается, но тест не работает подскажите что делать пожалуйста. Вот код private void button1_Click(object sender,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru