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

Присвоить строке элементы массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ пожалуста!Масивы и матрицы!3 задания http://www.cyberforum.ru/cpp-beginners/thread292410.html
1 задание в подразделении Y есть 15 сотрудников, а в G - 20. На протяжении месяца они отработали количество дней которое задано как случайное число от 0 до 31. Дневная оплата труда d рублей....
C++ указатели Помогите пожалуйста надо написать программу: Написать функцию возведения в квадрат каждого элемента матрицы (N, M), использовать ее для массива целых и вещественных чисел. Необходимо соблюсти... http://www.cyberforum.ru/cpp-beginners/thread292405.html
C++ Умножение матриц
Ребят помогите пожалуйста!!! Требуется написать программку умножения матриц,значения в матрице генерировать случайным образом число строк и столбцов вводить самостоятельно. Пишу в Borland C++ 3.1...
Хэш-таблица, ошибка C++
Всем добрый день. Нужна помощь. За основу взять ПРИМЕР1 хэш-таблицы с прямой адресацией (разобраться с примером). Изменить функцию вычисления хэш на мультипликативный - H(key)= , где key*A mod 1...
C++ Динамическая структура данных http://www.cyberforum.ru/cpp-beginners/thread292373.html
Дано type строка=array of char; дата=record число:1..31; месяц:1..12; год:1900..1979 end;анкета=record фамилия:строка;пол:(муж, жен);деньрожд:дата end;группа=array of анкета; Программа вводит...
C++ Количество перестановок Здравствуйте! Как подсчитать количество сделанных перестановок в результате сортировки массива методом вставки? Буду очень благодарен. template <class T> void TArray <class T> :: sort () { ... подробнее

Показать сообщение отдельно
D&B
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 3

Присвоить строке элементы массива - C++

10.05.2011, 19:28. Просмотров 368. Ответов 0
Метки (Все метки)

Всем доброго дня!
Снова обращаюсь за помощью к умным людям. =)
Имеется следующая программа:

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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
#include <stdio.h>
#define MAXSIZE 1000 
#define MAX 1000
#define MAXNODE 1000
#define MAXLEAF 1000
typedef struct {
        int weight;// число повторений в строке
        char letter;//элемент
        int parent,lchild,rchild;
        }HNode;
typedef struct {  
        int start;
        int bit[10];
        }HCode;
//**************************************
void HuffmanTree(HNode HN[MAXNODE],int n)
     {
            int i,j,x1=0,x2=0,min1,min2;
            int num=2*n-1;
            for(i=0;i<num;i++)
               {                          
                    HN[i].weight=0;
                    HN[i].parent=-1;
                    HN[i].lchild=-1;
                    HN[i].rchild=-1;
               }
          
             for(i=0;i<n-1;i++)  
                {
                     min1=MAX,min2=MAX;
                    
                     for(j=0;j<n+i;j++)
                       {         
                            if(HN[j].weight<min1&&HN[j].parent==-1){
                            min1=HN[j].weight;
                            x1=j;
                            }  
                            else if(HN[j].weight<min2&&HN[j].parent==-1){
                                    min2=HN[j].weight;
                                    x2=j;
                                    }
                       }
                      HN[x1].parent=n+i;
                      HN[x2].parent=n+i;      
                
                      HN[n+i].lchild=x1;
                      HN[n+i].rchild=x2;
                      HN[n+i].weight=HN[x1].weight+HN[x2].weight;
              }
    }   
    void Message()
      {
              printf("*****************************************\n"); 
               
              printf("      This is Huffman code program.\n"); 
              printf("     Please input like the eg :a10 .\n");
              printf("*****************************************\n");     
      }             
  //***********************************************
  int main()
  {
          HNode HN[2*MAXNODE-1];
          HCode HC[MAXLEAF],code; 
          char line[MAX],l[MAX],g[MAX], *r;
          int c,i,j,n,p,nc;
          Message();
          
          printf("Enter line: ");
            if (fgets(line, MAX, stdin) == NULL)
            printf("Error!");
            for (r = line,i=0; *r != '\0'; r++,i++)
            {HN[i].letter =*r;
            printf("%c",HN[i].letter);  }
            putchar('\n');
 
            n=i-1;
 
 
            for (i=0;i<=n;i++)
            {
            for (r=line,nc=0;*r!='\0'; r++)
            {
            if (*r ==HN[i].letter)
                nc++;
            }
            HN[i].weight=nc;}
            for(i=0;i<n;i++)
            printf("%d",HN[i].weight);
          
                          
          HuffmanTree(HN,n); 
           for(i=0;i<n;i++)
            {
                  code.start=n-1;
                   c=i;
                   p=HN[c].parent;  
            while(p!=-1)
                      {  
                           if(HN[p].lchild==c)
                              code.bit[code.start]=0;
                            else 
                               code.bit[code.start]=1;
                       code.start--;
                        c=p;
                        p=HN[c].parent;
                    }
                   for(j=code.start+1;j<n;j++)
                     HC[i].bit[j]=code.bit[j];
                     HC[i].start=code.start;
                     
            }
            
            printf("\n");
            
            for(i=0;i<n;i++)
               {
                     
                        for(j=HC[i].start+1;j<n;j++)
                           printf("%d",HC[i].bit[j]);
                      
               }
               
                printf("\n");
               
                for(i=0;i<n;i++)
               {
                       printf("The %c huffman code is :",HN[i].letter);
                        for(j=HC[i].start+1;j<n;j++)
                           printf("%d",HC[i].bit[j]);
                        printf("\n");
               }
               
         return 0;
  }
Вот в этой части программки:

C++
1
2
3
4
5
6
7
 for(i=0;i<n;i++)
               {
                     
                        for(j=HC[i].start+1;j<n;j++)
                           printf("%d",HC[i].bit[j]);
                      
               }
выводится последовательность нулей и единичек, но выводится посимвольно. А мне нужно чтобы эта последовательность сохранялась в строку, чтобы потом я мог дальше работать с этой строкой. Подскажите пожалуйста как это реализовать.

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