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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Книги Герберта Шилдта http://www.cyberforum.ru/cpp-beginners/thread595440.html
Здравствуйте! Закончил 1 курс, по программированию на С++ остановились на классах, наследовании и пр. для дальнейшего изучения языка хочу приобрести книжку, больше всего хвалят именно Шилдта. Хорошо, в продаже от его имени есть: С++ для начинающих. Шаг за шагом Полный справочник по C++ C++: базовый курс Самоучитель C++ C++. Руководство для начинающих Что выбрать и чем они отличаются?...
C++ Оформление программы в виде функций Программа определяет произведение элементов в тех строках, которые не содержат отрицательных элементов. Нужно оформить ее в виде функции. Все данные для функций должны передаваться им в качестве параметров. Не понимаю, как это сделать? #include "iostream.h" #include "conio.h" int main() { int a; int i, j, n=10, m=10, c=1; bool flag; int *p; http://www.cyberforum.ru/cpp-beginners/thread595424.html
Найти максимум из чисел C++
1)Дана последовательность целых чисел,заканчивающаяся числом С(С константа ,является признаком окончания ввода и в саму последовательность не входит).С=12212.Найти максимум из чисел,сумма цифр которых равна произведению цифр. Правила3.15. Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема. 2) Перемещено в новую тему:...
C++ ios_base::unsetf
Чего-то ругается на unsetf. Что я задал не так? #include <iostream> using std::ios_base; using std::ostream; ostream& operator<<(ostream& os, const Date& date) { os.fill('0'); os.width(2); os<<date.day<<'.'<<date.month<<'.';
C++ Ввод string'a с консоли и запись его в вектор http://www.cyberforum.ru/cpp-beginners/thread595367.html
Здравствуйте дело в том что мне надо написать программу которая работает с строчным вектором типа string. Вроде-бы все нормально я набросал код, но я не знаю как ввести string с консоли. Мне не надо вводить чар и преобразовывать его в string, а сразу вводить string. Вывод я знаю что как-то так: #include <string.h> using namespace std; int main(){ string line; cin >> line;
C++ Создать производные классы: Rectangle (прямоугольник), Circle (круг), Triangle (треугольник) со своими методами вычисления площади и периметра Создать производные классы: Rectangle (прямоугольник), Circle (круг), Triangle (треугольник) со своими методами вычисления площади и периметра. подробнее

Показать сообщение отдельно
revaldo666
9 / 9 / 1
Регистрация: 18.07.2010
Сообщений: 180

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

04.06.2012, 08:50. Просмотров 281. Ответов 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
и так далее если есть ещё блоки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru