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

Найти ошибку в коде

04.06.2015, 11:59. Показов 680. Ответов 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
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
#include <iostream>                 //Подключаем библиотеки
#include <iomanip>
#include <windows.h>
#include <fstream>
# include <conio.h>
using namespace std;
struct node                         //Описание узла
{
    int info;
    node *l, *r;
};
node *tree=NULL;
void push(int N, node **t)
{
    if((*t)==NULL)
    {
        (*t)=new node;
        (*t)->info=N;
        (*t)->l=(*t)->r=NULL;
        return;
    }
         if (N%2==1) 
             {
                 push(N/2,&(*t)->l);
                 push(N-(N/2),&(*t)->r);
              } 
         else push(N,&(*t)->r);
}
void print (node *t,int u) 
{
    if (t==NULL) return; //Если дерево пустое, то отображать нечего, выходим
    else //Иначе
    {
    print(t->l,++u);//С помощью рекурсивного посещаем левое поддерево
    for (int i=0;i<u;++i) cout<<" ";
    cout<<t->info<<endl; //И показываем элемент
    u--;
    }
    print(t->r,++u); //С помощью рекурсии посещаем правое поддерево
}
void main ()
{   SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int N; //Корень Дерева 
    int K; //Число, передаваемое в дерево
    int S=1;  //Количество элементов
    cout<<"введите число N и К "<<endl;
    cin>>N>>K;
    push(N,&tree);
    while (K>1)
        {
            push(K,&tree);
            K=K/2;
        }
    cout<<"ваше дерево\n";
    print(tree,0);
    getch();       
}
Не могу понять где ошибка, выводит не то дерево которое нужно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2015, 11:59
Ответы с готовыми решениями:

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде)
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; for(int i = -21; i &lt; -99; i+=3) ...

Найти ошибку в коде
надо ввести равные стороны 3-ка #include &lt;iostream&gt; using namespace std; int main() { float side1 , side2 , side3; ...

Найти ошибку в коде
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int m, n, **a, i, j, s; cout&lt;&lt;&quot;vvedite kol-vo...

4
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
04.06.2015, 12:17
Все из-за плохо написсаного кода!
0
0 / 0 / 0
Регистрация: 03.06.2015
Сообщений: 10
04.06.2015, 17:10  [ТС]
А что именно не так в коде?
0
 Аватар для ArtFeather
14 / 14 / 13
Регистрация: 04.06.2015
Сообщений: 85
04.06.2015, 17:57
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
#include <iostream>                 //Подключаем библиотеки
#include <iomanip>
#include <windows.h>
#include <fstream>
#include <conio.h>
 
using namespace std;
 
struct node                         //Описание узла
{
    int info;
    node *l, *r;
};
node *tree = NULL;
void push(int N, node *&t)
{
    if (NULL == t) //если ничего нет
    {
        t = new node; 
        t->info = N;
        t->l = t->r = NULL;
    }
    if (N < t->info)
    {
        if (t->l != NULL)push(N, t->l);
        else
        {
            t->l = new node;
            t->l->l = t->l->r = NULL;
            t->l->info = N;
        }
    }
 
    if (N > t->info)
    {
        if (t->r != NULL)push(N, t->r);
        else
        {
            t->r = new node;
            t->r->l = t->r->r = NULL;
            t->r->info = N;
        }
    }
}
void print(node *t, int u)
{
    if (t == NULL) return; //Если дерево пустое, то отображать нечего, выходим
    else //Иначе
    {
        print(t->l, ++u);//С помощью рекурсивного посещаем левое поддерево
        for (int i = 0; i<u; ++i) cout << " ";
        cout << t->info << endl; //И показываем элемент
        u--;
    }
    print(t->r, ++u); //С помощью рекурсии посещаем правое поддерево
}
void main()
{
    //SetConsoleCP(1251);
    //SetConsoleOutputCP(1251);
    int N = 0; //Корень Дерева 
    int K = 0; //Число, передаваемое в дерево
    //int S = 1;  //Количество элементов
    setlocale(LC_ALL, "Russian");
    cout << "введите число N и К " << endl;
    cin >> N >> K;
    push(N, *&tree);
    while (K>1)
    {
        push(K, *&tree);
        K = K / 2;
    }
    cout << "ваше дерево\n";
    print(tree, 0);
    _getch();
}
0
0 / 0 / 0
Регистрация: 03.06.2015
Сообщений: 10
04.06.2015, 22:06  [ТС]
Условия задачи не много не такие.
Там дерево по условиям нужно построить.
Дано положительное число N. Создать дерево, корень которого имеет
значение N, а вершины обладают следующими свойствами: вершина с четным значением
K имеет левую дочернюю вершину со значением K/2 и не имеет правой дочерней
вершины; вершина со значением 1 является листом; вершина с любым другим нечетным
значением K имеет две дочерние вершины: левую со значением K/2 и правую со
значением K − K/2 (символ «/» обозначает операцию деления нацело). Распечатать
построенное дерево.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.06.2015, 22:06
Помогаю со студенческими работами здесь

Найти ошибку в коде
Код крашится, кто знает в чем дело? Может протестировать чем - то?

Найти ошибку в коде
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; void printarray(int **a, const int n, const int m); void printsum(int **a, const int n,...

Найти ошибку в коде
int i = 0, counter; float sum = 0, grade, quality; cout &lt;&lt; &quot;Inter a number of pupils: &quot;; cin &gt;&gt; counter; if...

Найти ошибку в коде
Доброго времени суток, программисты. У меня возникла проблема, в которой я не могу разобраться, а именно: #include &quot;stdafx.h&quot; ...

Найти ошибку в коде
Только начал изучать чудесное ООП и преподаватель задал ДЗ, в котором нужно реализовать добавление рецептов через массив указателей....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru