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

Контейнер map - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разное значение переменной класса, в разных экземплярах класса http://www.cyberforum.ru/cpp-beginners/thread1171204.html
Вот примерный код: class Test { private: static int countC; static int countD; void initWeight(){ double a; char fname; sprintf(fname,"test%d", countC);
C++ Функция стандартного нормального отклонения (аналог NORMSDIST из Excel) Добрый день. Хочу написать функцию, которая работает подобно НОРМСТРАСП в Excel, т.е. возвращает функцию стандартного интегрального распределения. Ее формула f(x)={1}/{\sqrt{2*\pi... http://www.cyberforum.ru/cpp-beginners/thread1171196.html
C++ Найти сумму модулей отрицательных нечетных элементов массива
Найти сумму модулей отрицательных нечетных элементов. Получить новый массив путем возведения в квадрат элементов, стоящих на четных местах.
C++ Сформировать массив из N чисел Фибоначчи
Привет всем. Нужно написать программу,формирующую массив из n чисел фибоначчи. Вот мой код. #include <stdio.h> int n, i; int *a = new int; int main() { scanf("%d", &n); for (i = 0; i <=...
C++ Ошибка в коде.Метод зейделя http://www.cyberforum.ru/cpp-beginners/thread1171171.html
Соственно проблема в том, что она работает где-то до окончания do вылетает с ошибкой, если кто-то видит где ошибка напишите пожалуйста #include <math.h> #include <iostream> #include <iomanip>...
C++ Определить колич-во комментариев, количество утверждений и для каждого утверждения указать, сколько строк оно задание такое Дан текст какой то в файле Определить колич-во комментариев, количество утверждений и для каждого утверждения указать, сколько строк оно занимает. с комментариями все ясно,... подробнее

Показать сообщение отдельно
daert
1 / 1 / 2
Регистрация: 09.05.2014
Сообщений: 47
10.05.2014, 11:52  [ТС]
вот куски кода (надеюсь хватит), описанная ошибка происходит в функции print строка 27 без условия
C++
1
&&(int)(root->c)!=-51
не выполняется никогда, хотя символа 'Н' в тексте нет (программа реализует метод хаффмана через бинарное дерево, Node узел дерева, на ниждем уровне каждый узле имеет свой идентификатор и вес, на остальных уровнях у узла есть адреса двух нижестоящих узлов из которых он состоит и его вес)
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
class Node
{
    public:
     int a;
     char c;
     Node *left, *right;
     
     Node(){left=right=NULL;}
 
     Node(Node *L, Node *R) //конструктор принимающий 2 ссылки на левый и правый узлы нижестоящего уровня дерева
     {  left =  L;// указатель на левый узел предыдущего уровня входящий в узел текущего уровня
        right = R;
        a = L->a + R->a;  // записываем в узел текущего уровня вес узлов входящих в него с предыдущего уровня
     }
};
...
void print (Node* root, unsigned k=0)
{
    if(root!=NULL)
    {
        print(root->left,k+3);//рекурсивно продвигаемся от корня к вершинам (от единственного узла верхнего уровня до узлов нижнего уровня), 
                            //к-отступ для вывода на экран
        for(unsigned i=0; i<k;i++) 
            cout<<"  ";
 
        if(root->c&&(int)(root->c)!=-51) cout<<root->a<<" ("<<root->c<<")"<<endl;// если у текущего узла есть буква (буквы принадлежат лиш верхним узлам дерева)выводим её вес и символ 
        else cout<<root->a<<endl; // выводим вес узла если ему не принадлежит буква
        print(root->right,k+3);
    }
}
 
...
 
void main()
{
...
while (t.size()!=1)// пока в списке не останется 1 элемент(узел) выполнять
          {  
             t.sort(MyCompare());// сортирую список узлов дерева по частоте встречаемости символа от наименьшей к наибольшей, MyCompare() - условие сортировки
    
             Node *SonL = t.front();// создаём указатель на 1-й узел (т.е. на узел с наименьшей частотой встречаемости)
             t.pop_front();// удаляем взятый узел
             Node *SonR = t.front(); // создаём указатель на 1-й узел (2-й до удаления 1-го узла)  
                                //(т.е. на узел с наименьшей частотой встречаемости в списке из которго был удалён 1-й элемент)
             t.pop_front();// удаляем взятый узел
     
             Node *parent = new Node(SonL,SonR); // создаём узел следующего уровня из 2-х узлов текущего уровня
             t.push_back(parent);// добавляем созданный узел в список (дерево)
          }
}
Добавлено через 5 минут
программа нормально работает в monodevelop external console
но мне нужно в visual studio 2010

Добавлено через 2 минуты
и такой ещё вопрос: как проверить существует ли в ассоциативном массив элемент с заданным идентификатором?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru