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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
revaldo666
9 / 9 / 1
Регистрация: 18.07.2010
Сообщений: 180
#1

Отобрать блоки массива - C++

04.06.2012, 08:50. Просмотров 291. Ответов 0
Метки нет (Все метки)

Всем доброго времени суток, необходимо отобрать элементы массива заключённые в нули (то есть отобрать единицы) и переместить каждый блок из единиц в отдельный массив.Размер массива может быть произвольный, как и расположение элементов в нём, также могут быть и сложные конструкции типа
00111111100
00100000100
00101100100
00101100100
00100000100
00111111100
00000000000
ну и естественно не обязательно квадратной формы, возможны любые варианты.
. Изначально чтобы определить единици я прохожусь по массиву рекурсивной функцией, однако как отделить отдельные блоки не знаю. По этому прошу вашей помощи.
Вот код функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void checkImage(int r,int e,int & ch)
        {
           
            if (e < 0 || r < 0 || r>=Width ||e>=Height)
                return;
            if (ch[r, e] == true)
                return;
            ch[r, e] = true;
            checkImage(r + 1, e, ch);
            checkImage(r, e+1, ch);
            checkImage(r - 1, e, ch);
            checkImage(r, e-1, ch);
//ch это массив чисел.
        }
00000000000000000000
00011110000111100000
00011110000100111000
00011110000100001000
00000000000111111000
00000000000000000000
00000001111100000000
00000001111100000000
00000000101000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000
00000000000000000000

Добавлено через 10 часов 20 минут
Чтоб было более понятно, ответ должен быть таким:
ответ
массив 1 (позиции первого блока)
1111
1111
1111
массив 2(позиции второго блока)
111
1 111
1 1
11111
массив 3(позиции третьего блока)
11111
11111
1 1
и так далее если есть ещё блоки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2012, 08:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отобрать блоки массива (C++):

Пакетированные стандартные блоки - Вложенные стандартные блоки - C++
Кто нибудь может объяснить на примере кода С, как это выглядит?

Отобрать из текстового файла в бинарный информацию - C++
Здравствуйте. Нужно отобрать из текстового файла в бинарный информацию. Пожалуйста, подскажите как делать, с бинарными файлами вообще не...

Парсинг строки: отобрать символы кириллицы - C++
После введения с клавиатуры произвольной строки вывести на экран эту строку с отобранными у него буквами кириллицы. напишите код на...

Парсинг строки: отобрать латинские символы - C++
после введения с клавиатуры произвольной строки вывести на экран эту строку,но с отобранными из него латинскими буквами. с++ Заранее...

Отобрать целые значения переменной на заданном отрезке - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #include &lt;math.h&gt; #include...

Отобрать кандадатов на олимпиады (с отличными оценками) по каждому из предметов - C++
Для группы учащихся известны годовые оценки по следующим предметам:математика,физика,химия, информатика. Отобрать кандадатов на олимпиады(с...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2012, 08:50
Привет! Вот еще темы с ответами:

Отобрать в другой массив все четные отрицательные элементы - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main () {int j; const int n = 10; int A, B; for...

Отобрать одинаковые числа из двух массивов и записать их в третий массив - C++
Суть программами: у нас есть два массива заполнение рандомом из них нужно отобрать одинаковые числа и записать в третий массив

Среди элементов ниже главной диагонали отобрать те, которые превышают максимум второго столбца матрицы - C++
как среди эллементов лежащих ниже главной диагонали отобрать те которые превышают максимум второго столбца матрицы #include&lt;iostream&gt; ...

Сколькими способами можно отобрать команду в составе 5 человек из 8 кандидатов;из 10 кандидатов; из 11 кандидатов? Подсчет количества способов отбора - C++
Нужна помощь, есть код на Pascal нужно в C. Вот программа: function fact(x: longint): longint; begin if x=0 then fact:=1 ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru