|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.09.2017, 05:00 | #1 |
Регистрация: 04.06.2017
Сообщений: 3
|
Упаковка массива.
Прошу совета.
Необходимо упаковать последовательность целочисленных переменных. Таким образом чтобы байт-счетчик считал подпоследовательность из не повторяющихся элементов и вставал перед ней и имел положительное значение. А также считал подпоследовательность из одинаковых элементов и вставал перед значением повторяющихся элементов и имел отрицательное значение. Т.е.: •последовательность из целых не повторяющихся элементов кодируется целым счетчиком (типа int) за которым следуют эти элементы •последовательность из повторяющихся элементов кодируется отрицательным значением счетчика, за которым следует значение повторяющихся элементов •нулевое значение целого счетчика обозначает конец последовательности Пример: •исходная последовательность: 2 3 3 3 5 2 4 4 4 4 4 8 -6 8 •упакованная последовательность: (1) 2 (-3) 3 (2) 5 2 (-5) 4 (3) 8 -6 8 Я реализовал часть задачи, а именно упаковку подпоследовательности из повторяющихся элементов: void pack(int *p, int A[], int n) { int cnt = 0; for(int i = 1; i<n; i++) { if(A[i] == A[i-1]) { cnt--; if(i<2 || (A[i] != A[i-2])) cnt--; *(p+i) = cnt; cnt=0; } } } Подскажите как реализовать вторую часть задачи, а именно посчитать не повторяющиеся элементы массива, и вставить этот счетчик перед подпоследовательностью в последовательность, и условия его обнуления. Спасибо |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
упаковка 32bit | rekbrjaaa | Общие вопросы C/C++ | 1 | 10.06.2013 11:04 |
3D упаковка | elpilasgsm | Помощь студентам | 0 | 06.11.2011 00:22 |
Упаковка программы | daimon7777 | Помощь студентам | 8 | 03.03.2011 18:44 |
Упаковка БД | Serge77 | БД в Delphi | 1 | 02.06.2009 11:58 |